2011-03-02 2 views
2

Visual Studio 2010에서 서비스 추가 참조를 사용하여 만든 웹 서비스 클라이언트가 웹 서비스를 호출하고 결과가 반환되면 어떻게되는지에 대한 정보를 찾고 있습니다.비누 봉투는 어떻게 생성되며 .NET 및 PHP 클라이언트는 다른 비누 봉투를 생산/수신합니까?

비누 요청 봉투가 어떻게 만들어지고 형식을 결정합니까? 비누 응답 봉투가 어떻게 만들어지고 형식을 결정합니까?

이 프로세스는 항상 .net에 의해 추상화되었으며 어떻게 완료되었는지 살펴 보지 못했지만 PHP를 사용하는 사용자가 있으며 응답 봉투에 문제가있는 것 같습니다. 아래에서는 요청 및 .net 및 PHP 코드의 응답에 대한 비누 봉투 샘플을 제공합니다.

PHP 요청 :

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="http://some.junk.url.xxxx.com"> 
    <SOAP-ENV:Body> 
    <ns1:wsActionRouter> 
     <ns1:i_UserId>XXXX</ns1:i_UserId> 
     <ns1:i_Password>******</ns1:i_Password> 
     <ns1:ActionType>CS</ns1:ActionType> 
     <ns1:XmlData> 
     blah blah blah 
     </ns1:XmlData> 
    </ns1:wsActionRouter> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

.NET 요청 :

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header> 
    <Action s:mustUnderstand="1" 
     xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none" /> 
    </s:Header> 
    <s:Body> 
    <wsActionRouter xmlns="http://some.junk.url.xxxx.com"> 
     <i_UserId>XXXX</i_UserId> 
     <i_Password>******</i_Password> 
     <ActionType>CS</ActionType> 
     <XmlData> 
     blah blah blah 
     </XmlData> 
    </wsActionRouter> 
    </s:Body> 
</s:Envelope> 

PHP 응답 :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Header/> 
    <soapenv:Body> 
    <p287:wsActionRouterResponse xmlns:p287="http://some.junk.url.xxxx.com"> 
     <p287:wsActionRouterReturn> 
     blah blah blah 
     </p287:wsActionRouterReturn> 
    </p287:wsActionRouterResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

.NET 응답 :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Header /> 
    <soapenv:Body> 
    <wsActionRouterResponse xmlns="http://some.junk.url.xxxx.com"> 
     <wsActionRouterReturn> 
     blah blah blah 
     </wsActionRouterReturn> 
    </wsActionRouterResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

봉투가 다른 이유는 무엇입니까?

PHP 사용자는 특히 p287 네임 스페이스에 대해 불만을 나타내고 결과를 사용할 수 없다고 말합니다. 응답 봉투를 구문 분석하고 네임 스페이스를 고려하지 않는다는 가정을하고 있습니다.

+0

오신 것을 환영합니다 (죄송합니다,이 말은 기분을 상하게하는 경우)하지만 난 아주 잠시 동안이 사업에 봤는데 내가 지금 이런 것들과 함께 공급하고, I 그것의 뒤에 무지인지 나쁜 것인지 알지 못한다. HTML이 표준이어야하고 그렇지 않아야합니다. SOAP이 표준이어야하고 그렇지 않아야합니다. SQL이 표준이어야하고 왜 표준을 지정하는 것을 괴롭히지 않는지 모르겠습니다. 지금까지 가장 표준화 된 것으로 판명 된 것은 JSON뿐입니다. –

답변

0

PHP5 SoapClient를 사용하고 있는지 확인하고 그 결과를 소비하는 데 문제가 없어야합니다. : 소프트웨어 표준의 재미 세계에

http://us2.php.net/soapclient