2012-11-23 2 views
0

XML 요청을 수동으로 테스트해야합니다. 즉, 이전에 생성 된 XML 요청을 사용하여 웹 서비스 메서드를 호출하고 싶습니다. SoapClient __doRequest를 사용하려고하는데 빈 백 한 응답입니다.PHP SoapClient -> __ doRequest

나는 이미 문서를 읽었으며 다른 여러 게시물을 여기에서 읽었으며 아무도이 문제를 전에 시도한 적이 없으며 유사한 질문을 한 소수만 실제로 응답이 없습니다.

이 방법을 사용하는 이유는 특정 웹 서비스에서 문제를 일으키는 다른 도구로 생성 된 XMLRequest를 테스트하는 방법 일뿐입니다. 그래서 soapclient 생성 메소드를 호출 할 수 없으며 "_call"을 호출 할 수도 없습니다. SOAPClient를 사용하여 이전에 만든 XML 요청을 보내야합니다. 이것이 가능합니까? 그렇다면 어떻게 ...

$result = $soapClient->__doRequest($docRequest, "http://someservice.asmx", "http://someservice/Login", soap_1_2, 0); 

내가 이것을 호출하면 오류없이 $ 결과가 null이됩니다. 당신이 전화하지 않는

class LocalSoapClient extends SoapClient 
{ 
    function __doRequest($request, $location, $action, $version, $one_way = 0) 
    { 
     $request = "...."; // your changed XML goes here 

     return parent::__doRequest($request, $location, $action, $version, $one_way); 
    } 
} 

$client = new LocalSoapClient($wsdl_url, array('trace' => 1)); 
$client->__soapCall($function_name, array($service_call_params)); 

참고 :

$exception = null; 
$result = parent::__doRequest($request, $location, $action, $version, $one_way); 
if((isset($this->__soap_fault)) && ($this->__soap_fault != null)) { 
     //this is where the exception from __doRequest is stored 
     $exception = $this->__soap_fault; 
} 

if($exception != null) { 
     throw $exception; 
} 
+0

"location"매개 변수에 문제가 있다고 생각합니다. – som

+0

"다른 툴에 의해 생성 된 XMLRequest"- 이것은'$ docRequest'에있는 것입니까? –

+1

비누 응답을 받으려면 $ client -> __ getLastResponse();를 사용해야합니다. (및/또는 $ client -> __ getLastResponseHeaders();) – noslone

답변

1

은 어쩌면 전화는 잡을 필요가 예외를 throw __doRequest 직접 - 표준 __soapCall을 수행하면 실행됩니다.

관련 문제