0

.net(私は思う)のWebサービス構造と通信する必要がありますが、メソッドを呼び出そうとすると、次のエラーが返されます。

メッセージ''で指定されたSOAPアクションは、HTTPSOAPアクション' http://tempuri.org/TripointWebservicesVersionedGeneral/Ping 'と一致しません。

Webサービスに接続してメソッドを実行するためのコード:

$client = new SoapClient(
                    '...?wsdl',
                        array(
                            'trace' => 1,
                            'soap_version' => SOAP_1_2
                        )
                    );

//$test = $client->__soapCall('Ping',array(''));
$test = $client->Ping();

このエラーの理由は何ですか?または、メソッドを呼び出すために何をする必要がありますか?

私はすでにこのPHPの致命的なエラーを読みました:「メッセージで指定されたSOAPアクション''はHTTPSOAPアクションと一致しません」そしてこれをSOAP接続のオプションに入れました"'action' => '.../Ping'"が私を助けません。

4

2 に答える 2

1

メソッドを呼び出せない理由は次のとおりです。

問題の 1 つ: PHP が「Caught exception: Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'. "

理由: WCF は、PHP が期待するよりも新しいバージョンの Web サービスを実行しています。

ソリューション:

WCF サービスのバインドの種類を binding="wsHttpBinding" から binding="basicHttpBinding" に変更します。

これにより、.NET Web サービスが、WS-I 標準に準拠するクライアントやその他のサービスをサポートすることが保証されます。

URL ソース: http://spacebug.com/php-calling-wcf-part-1-html

于 2013-01-25T16:20:32.020 に答える
0

SoapClient完全な答えではありませんが、 WS-Addressing を使用する Web サービスを使用しようとしているために、おそらくこの問題に直面していることを強調したかっただけです。この状況で他の人が何をするかを追跡するようにしてください。

http://www.cdatazone.org/index.php?/archives/15-WS-Addressing-for-extsoap.html

https://github.com/wso2/wsf

于 2013-01-24T19:03:40.190 に答える