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;
}
"location"매개 변수에 문제가 있다고 생각합니다. – som
"다른 툴에 의해 생성 된 XMLRequest"- 이것은'$ docRequest'에있는 것입니까? –
비누 응답을 받으려면 $ client -> __ getLastResponse();를 사용해야합니다. (및/또는 $ client -> __ getLastResponseHeaders();) – noslone