2011-04-18 3 views
0

호출 후 PHP 5를 사용하여 SOAP 호출을 만들고 있는데, 매개 변수로 전달하는 것과 상관없이 SOAP 함수는 단순히 값과 스크립트 실행을 반환하지 않습니다. 멈추는 것 같다. 나는 시도와 함께 그리고 시도하지 않고 노력했지만 변화가 없다. 빈 $ params, 비어 있지 않은 매개 변수 등을 전달했습니다.PHP5 비누 함수가 반환되지 않습니다. 스크립트가 중지되지 않습니다.

$ client-> getClient ($ params);

반향되지 않는 b 에코가 있습니다. 호출이 이루어진 후 스크립트가 실행을 멈춘 것처럼 보입니다. 오류가 표시되지 않고 error_log에 아무 것도 표시되지 않습니다. 매우 실망스럽고, 어떤 아이디어?

$ params = array();

$client = new SoapClient("https://sandbox.paymentsgateway.net/WS/Client.wsdl",array(
        'soap_version'=>SOAP_1_1, 
        'exceptions'=>true, 
        'trace'=>1, 
        'cache_wsdl'=>WSDL_CACHE_NONE, 
        'location'=>'https://sandbox.paymentsgateway.net/WS/Client.svc/basic' 
       )); 

    try 
    { 
     echo '4'; 
     $client->getClient($params); 
     echo 'b'; 
    } 
    catch (Exception $e) 
    { 
     echo $e->getMessage(); 
    } 

답변

1

WSDL 모드에서 작업하는 경우 location 매개 변수를 사용하지 않아야합니다. 상호 배타적이어야합니다. location- 매개 변수를 삭제 해보세요.

편집 (위에서 도움이되지 않았기 때문에) 다음 SoapClient 올바르게 WSDL 구문 분석 할 수 있다면

시도가 확인 :

print_r($client->__getFunctions()); 
print_r($client->__getTypes()); 

을 장소에 모든 인증은, 예를 들어, 거기에 WSDL 문서의 HTTP 인증?

스크립트가 실행 시간 또는 메모리 제한으로 실행됩니까? .NET 웹 서버에 연결하는 것처럼 보이고 WSDL이 상당히 커지는 경향이 있습니다. PHP가 WSDL을 구문 분석하는 데 약간의 시간이 걸릴 수 있습니다.

+0

위치 매개 변수 제거를 시도했지만 아무런 차이가 없습니다. – Seven

+0

안녕하세요 - 약 2 초 후에 스크립트가 끝납니다. 그것은 WSDL을 파싱 할 수 있으며 createClient가 아닌 특정 함수를 호출 할 수도 있습니다. 적절한 매개 변수를 사용하여 getClient를 호출하면 작동합니다. 빈 문자열을 param으로 전달하면 웹 서비스에서 오류가 발생하지만 다른 것을 전달하는 순간 오류가 발생합니다. 올바른 매개 변수를 전달하지 않을 수도 있지만 오류를 다시 얻지는 못하고 나머지 스크립트는 작동을 멈 춥니 다. 그 이유에 대한 아이디어는 무엇입니까? – Seven

+0

다른 클라이언트를 통해 웹 서비스에 연결할 수 있습니까? 코드를 실행할 때 TCP/IP 연결에서 어떤 일이 일어나는지 설정할 수 있습니까? 그렇지 않으면 디버깅하기가 어렵습니다. –

관련 문제