2010-03-31 5 views
2

저는 하나의 Zend Framework와 다른 Zend Framework를 사용하여 동일한 SOAP 요청을하고 있습니다. Zend one은 작동하지 않으며 유일한 차이점은 envelope 네임 스페이스 인 것처럼 보입니다.다른 비누 봉투 - 하나는 작동하고 다른 하나는 실패 함

봉투가 어떻게 설정되며 왜 봉투 중 하나가 실패합니까?

젠드 비누 전화

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://wsapi" 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:incomingRequest env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> 
<username xsi:type="xsd:string">myuser</username> 
<password xsi:type="xsd:string">mypass</password> 
<request xsi:type="xsd:string">&amp;lt;incoming-requests&amp;gt;&amp;lt;request description="getEmailMessageStatus"&amp;gt;&amp;lt;incoming-data&amp;gt;&amp;lt;email-message messageID="messageID"/&amp;gt;&amp;lt;/incoming-data&amp;gt;&amp;lt;/request&amp;gt;&amp;lt;/incoming-requests&amp;gt;</request> 
</ns1:incomingRequest> 
</env:Body> 
</env:Envelope> 

PHP 비누 전화

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://wsapi" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
<ns1:incomingRequest> 
<username xsi:type="xsd:string">myuser</username> 
<password xsi:type="xsd:string">mypass</password> 
<request xsi:type="xsd:string">&lt;incoming-requests&gt;&lt;request description="getEmailMessageStatus"&gt;&lt;incoming-data&gt;&lt;email-message messageID="messageID"/&gt;&lt;/incoming-data&gt;&lt;/request&gt;&lt;/incoming-requests&gt;</request> 
</ns1:incomingRequest> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

답변

1

나는이 문제를 알아 냈어요.

Soap 서버는 SOAP 버전 1.1에서만 호환됩니다.

젠드, 당신과 같이 버전을 지정할 수 있습니다

$client = new Zend_Soap_Client('wsdl url', array('soap_version' => SOAP_1_1)); 

봉투를 변경하고 비누 서버는 정상적으로 응답하기 시작했다.

관련 문제