2016-10-17 2 views
2

SOAP를 사용하여 서버에 데이터를 보내야합니다. 이것을 구현했지만 오류가 발생했습니다.SOAP 보내기 1.2

오류는 SOAP 또는 PHP 등의 오류가 아니며 응용 프로그램 프로토콜의 오류로 인해 발생합니다.

다른 측면에서는 SOAP1.1 데이터를 보내고 SOAP1.2가 필요하다고 주장합니다. 내가 아는 한 내가 1.2를 보내고있다.

확인 서버에서 헤더와 데이터를 수집하는 간단한 페이지를 만들었으므로 실제로 보내지는 것을 볼 수 있습니다.

제가 누락되었거나 아래에 보내는 내용을 기반으로 한 것은 사실 의심스러운 SOAP1.2입니다.

PS, 나는 차이에 대한 추가 정보를 얻기 위해이 문서를 확인 : http://wso2.com/library/articles/differentiating-between-soap-versions-looking-soap-message/ 감사합니다 만,

헤더 :

SERVER: Array 
(
    [CONTENT_LENGTH] => 1286 
    [CONTENT_TYPE] => application/soap+xml; charset=utf-8 
    [DOCUMENT_ROOT] => /home/viewport/public_html 
    [GATEWAY_INTERFACE] => CGI/1.1 
    [GEOIP_ADDR] => 1.2.3.4 
    [HTTP_ACCEPT] => */* 
    [HTTP_EXPECT] => 100-continue 
    [HTTP_HOST] => example.com 
    [PATH] => /bin 
    [QUERY_STRING] => 
    [REDIRECT_STATUS] => 200 
    [REMOTE_ADDR] => 1.2.3.4 
    [REMOTE_PORT] => 46608 
    [REQUEST_METHOD] => POST 
    [REQUEST_URI] => /soap/index.php 
    [SCRIPT_FILENAME] => /home/example/public_html/soap/index.php 
    [SCRIPT_NAME] => /soap/index.php 
    [SERVER_ADDR] => 11.1.1.1 
    [SERVER_ADMIN] => [email protected] 
    [SERVER_NAME] => example.com 
    [SERVER_PORT] => 80 
    [SERVER_PROTOCOL] => HTTP/1.1 
    [SERVER_SIGNATURE] => 
    [SERVER_SOFTWARE] => Apache 
    [UNIQUE_ID] => WASuooHowGwAAFv9EK4AAAAB 
    [PHP_SELF] => /soap/index.php 
    [REQUEST_TIME] => 1476701858 
) 

데이터 :

xml: <?xml version="1.0" encoding="utf-8"?> 
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
<soap12:Body> 
<EditionContactCustomer xmlns="http://tempuri.org/"> 
<Title>Spares</Title> 
<FirstName>John</FirstName> 
<Surname>Mc</Surname> 
<AddressLine1></AddressLine1> 
<PostTown>plett</PostTown> 
<County>Western Cape</County> 
<PostCode></PostCode> 
<email>[email protected]</email> 
<TelephoneNumber>081</TelephoneNumber> 
<MobileNumber>081</MobileNumber> 
<WorkTelephoneNumber></WorkTelephoneNumber> 
<Notes>this is a test note.</Notes> 
<ContactDate>2016-10-17</ContactDate> 
<ContactTime>10:57:38</ContactTime> 
<VehicleRecordID></VehicleRecordID> 
<IntroductionSource>Existing</IntroductionSource> 
<EnquirySource>WEB</EnquirySource> 
<EnquiryType>WEB_FORM</EnquiryType> 
<GUID></GUID> 
<ReferenceID></ReferenceID> 
<UserName></UserName> 
<LinkUrl></LinkUrl> 
<ImageData></ImageData> 
</EditionContactCustomer> 
</soap12:Body> 
</soap12:Envelope> 
+0

실제 PHP 코드는 무엇입니까? – GunniH

+0

죄송합니다. 실제로 SOAP 클라이언트를 사용하지 않는다는 사실을 잊어 버렸습니다. 난 그냥 xml을 만든 다음 곱슬 곱슬하게 그것을 게시 .. 위의 출력은 곱슬 게시의 결과입니다 .. –

+0

하지만 ....... 왜? – GunniH

답변

0

SOAP 1.2를 보내려면 SoapClient 구조에서 올바른 "soap_version"매개 변수가 필요합니다. $ URL을 온라인 또는 파일 당신의 WSDL 위치입니다

$client = new SoapClient($url, array(
    "soap_version"  => SOAP_1_2, 
    "login"    => "username", 
    "password"   => "password" 
)); 

: //

관련 문제