2012-12-21 6 views
0

GLS 'Track and Trace webservice에서 일부 데이터를 가져 오려고합니다. 참조 번호가있는 특정 순서로 데이터를 가져오고 싶습니다. 이 예제의 정확한 주문 번호가 존재하며 웹 사이트에서 액세스 할 수 있습니다. 하지만이 웹 서비스를 사용할 수 없습니다.SoapClient를 사용하여 WSDL에서 데이터를 가져올 수 없습니다.

된 .wsdl에 액세스 여기에 있습니다 :

다음

http://www.gls-group.eu/276-I-PORTAL-WEBSERVICE/services/Tracking/wsdl/Tracking.wsdl

내가 지금 뭘하는지입니다 : 내가 얻을 수있는 모든 종류의 방법을 노력했습니다

$reference = array(
    'Credentials' => array('UserName' => 'hidden', 'Password' => 'secret'), 
    'RefValue' => '291054' 
); 
$client = new SoapClient('http://www.gls-group.eu/276-I-PORTAL-WEBSERVICE/services/Tracking/wsdl/Tracking.wsdl', array('login' => 'hidden', 'password' => 'secret')); 
$result = $client->GetTuDetail($reference); 

return $result; 

데이터를 가져 오지만 요청은 약 50 초 걸리고 다음을 반환합니다.

stdClass Object 
(
    [ExitCode] => stdClass Object 
     (
      [ErrorCode] => 998 
      [ErrorDscr] => No data found 
     ) 

    [TuNo] => 
    [NationalRef] => 
    [ConsigneeAddress] => 
    [ShipperAddress] => 
    [RequesterAddress] => 
    [DeliveryDateTime] => 
    [PickupDateTime] => 
    [Product] => 
    [TuWeight] => 0 
) 

나는 머리에있는 모든 머리카락을 꺼냈다. 내가 무엇을 놓치고 있니? 미리 감사드립니다, 백만 시간.

+0

필자가 해낸 SOAP 구현은 PHP가 아니라 PERL이지만 SOAPLite를 개발하는 데 많은 도움이 되었기 때문에 WSDL을 사용하여 더미 서버를 자동 생성하고 SOAPlite 클라이언트와 더미 서버가 어떻게 확인되는지 정보를 보내고 받으면 코드를 사용하여 동일한 작업을 수행하십시오. – Naryl

+0

또한'GetTuDetail' 함수를 실행하기 위해 서버에 보내는 SOAP 본문을 인쇄 할 수 있다면 도움이됩니다. – Naryl

+0

@ Naryl 'SOAP body'란 무엇을 의미합니까? 나는 모든 것을 포함시켰다. 이게 내가 지금하는 전부 야. – nielsiano

답변

1
$reference = array(
    'Credentials' => array('UserName' => 'hidden', 'Password' => 'secret'), 
    'RefValue' => '18235206982' 
); 
$client = new SoapClient("http://www.gls-group.eu/276-I-PORTAL-WEBSERVICE/services/Tracking/wsdl/Tracking.wsdl"); 
$result = $client->GetTuDetail($reference); 

print_r($result); 

"RefValue"는 유효한 소포 번호이므로 올바른 응답을 받아야합니다.

관련 문제