2011-01-10 2 views
1

wsHttpBinding 웹 서비스만을 제공하는 서버가 있으며 PHP에서 사용해야합니다.PHP에서 SOAP wsHttpBinding 사용

http://www.w3.org/2005/08/addressing/faults:Sendera:ActionMismatch The SOAP action specified on the message, '', does not match the HTTP SOAP Action, ' http://tempuri.org/ICategoryApi/Tree '. a:Action

wsHttpBinding을 지원하는 일부 PHP SoapClient 구현이나 설정이 있습니까 : 표준 SoapClient 다음과 같은 오류를주고, 그것으로 작동하지 않는 이유는 무엇입니까?

답변

1

서버에 basicHttpBinding 모드가 있지만 바인딩 모드에서 모두 메서드 이름이 같음을 발견했습니다.

PHP 기본 클라이언트가 이름을 기준으로 메서드를 호출하고 첫 번째 일치 (wsHttpBinding 중 하나)로 이동하므로 오버로드를 구현할 때 PHP 기본 클라이언트가 차이점을 허용하지 않는 것처럼 문제가 지속되었습니다.

오른쪽 방법 (이 작업은 좋음)을 처리하기 위해 을 사용하여 해결했습니다.

1

wsHttpBinding은 PHP SoapClient가 처리 할 수없는 WS-Security 및 WS-Addressing 기능을 사용합니다.

오류를 기반으로 문제가 WS-Addressing (HTTP Action 헤더 누락, SOAP 메시지에서 헤더 누락)과 관련이 있다고합니다.

대신 도움이되는지 확인하십시오 : WSO2-WSF PHP.