2012-02-23 131 views
0

我使用Zend_Soap_Client對象發送SOAP請求到這裏的另一個應用是,它發送到服務器的XML的格式:我使用它的SOAP返回無效的XML響應

<?xml version="1.0" encoding="UTF-8"?> 
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urllocation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:isAccountActive env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><param0 xsi:type="xsd:string">thisisatest</param0></ns1:isAccountActive></env:Body></env:Envelope> 

其它SOAP服務器,我已經和似乎很好地工作,但服務器的一個響應返回「無效的XML」這就是爲什麼我真的不知道爲什麼它不會單獨該服務器上運行。任何想法將不勝感激。

其他細節

我試圖commentout調用從這裏服務器的方法的代碼是代碼:

$client = new Zend_Soap_Client(null, 
      array(
       'uri'=>'http://'.$user->customconfigs['alumniuri'], 
       'encoding'=>'UTF-8', 
       'location'=>'http://'.$user->customconfigs['alumnilocation'] 
      ) 
     ); 
     echo "Location: {$user->customconfigs['alumnilocation']} - uri: {$user->customconfigs['alumniuri']}"; 
     $alumniactive = $client->isAccountActive($token); 

在註釋掉:

$alumniactive = $client->isAccountActive($token); 

錯誤消失。這是從我的其他應用程序相同的代碼,它從那裏工作正常。

+0

也許這個問題更多的是關於服務器的,如果所有的人工作得很好? )有問題的服務器是什麼,它可以與任何其他客戶一起使用嗎? – raina77ow 2012-02-23 23:47:57

+0

是的,它在服務器上更多,並且所有其他服務器都使用相同的代碼。出於安全目的,我無法在此處發佈服務器位置,但在我製作的所有其他服務器上都使用了相同的邏輯。也許在我發送的XML中有任何設置或部分可能導致問題,我真的試圖找出它可能來自哪裏。 – 2012-02-23 23:49:55

+0

@ raina77ow你的問題是否會處置過程中對其他客戶的工作,是它的工作只是這一次我真的很沮喪跟蹤哪裏這個問題可以從未來。 – 2012-02-23 23:54:35

回答

0

經過長時間的搜尋了這個問題的答案後,我終於發現了問題...此代碼實際上是位於一個Joomla組件,它是我使用URI一樣我從將包括一個字符的位置有「&」這對xml標準是非法的,從我的xml中刪除這些字符將導致SOAP服務器接受該請求爲有效。 :)