私は基本HTTPとクライアントの両方を許可するWCF Webサービスを持っています。どちらもHTTPSで、ユーザー名は&です。これは、同じサービス上の2つのバインディングによって実現されます。PHPを使用して複数のバインディングを使用してWCF Webサービスを呼び出す
ので、サービスはhttps://foo.com/Service.svcであり、基本的なHTTP(SOAP 1.1)エンドポイントはhttps://foo.com/Service.svc/Unp11で、WS-HTTP(SOAP 1.2)エンドポイントがhttps://foo.com/Service.svc/Unpです。
クライアントは、組み込みのSOAPサポートを使用してPHP 5経由でこのWebサービスにアクセスしようとしており、サービスへの接続に問題があります。彼は、SOAPメッセージがひどく形成された場合や、SOAP 1.1メッセージがSOAP 1.2エンドポイントに送信された場合(またはその逆の場合)に発生する傾向のあるHTTP 400(Bad Request)応答を取得し続けます。
私は基本的なPHPしか知っていないので、私は彼を助けることに困っています。
$client = new SoapClient('https://foo.com/Service.svc?wsdl');
どのようにバインディング/エンドポイントを指定しますか? PHPでこれを達成するための既知の問題はありますか?
UPDATE
[OK]をので、私は(SoapClient
コンストラクタ内のSOAPバージョンを指定)、[OK] WCFサービスに接続するためにPHPを使用することができ、かつ$client->__getFunctions()
を呼び出すと、すべてのWebサービス操作の正確なリストを返します。
は私が1 $client->__soapCall
使用して呼び出すようにしようとすると、そこに最終的にはかなりしばらくの間、ロード、および座っているページは、エラー「エラーHTTPヘッダーフェッチ」を返します。これはどういう意味ですか、どうすれば修正できますか? (.Netクライアントからのサービスは完全に動作します)
おかげで、これは有用でした。今私がサービスの操作の1つを呼び出すと、スクリプトは返されないようです!元の質問にいくつかの詳細を追加しました。 –
おっと、長く待たずに。 "HTTPヘッダーの取得中にエラーが発生しました"と思われますか? –