0

私の上司は、WCFで書いたと言った.netサービスリンクを私にくれました。サービスのプログラマーが、asp.net で使用する場合はこのサービスに問題はありませんが、PHP でこのサービスを使用しようとすると問題が発生すると言ったため、サービスは間違った方法で記述したと思います。

私のコードは次のとおりです。

$url = "http://<service url>?wsdl";

$param = new stdClass();
$param->type = "user";

$soap = new SoapClient($url);
$result = $soap->getPerm($param);

プログラムを実行すると、次のメッセージが表示されます。

Fatal error: Uncaught SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'multipart/related; type="application/xop+xml"'. in /home/work/soap.php:10
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://<service url>....', 'http://tempuri....', 1, 0)
#1 /home/work/soap.php(10): SoapClient->__call('getPerm', Array)
#2 /home/work/soap.php(10): SoapClient->getPerm(Object(stdClass))
#3 {main}
  thrown in /home/work/soap.php on line 10

私は自分の問題を解決するためにグーグルを使用しているので、この記事を見つけました: http://www.binarytides.com/modify-soapclient-request-php/

SoapClienttoを拡張してSoapClientDebugこれを使用すると、次のメッセージが表示されます。

[Client] looks like we got no XML document in /home/work/soap.php:10

私は本当に混乱しています.PHPでWindowsサービスを使用する方法がわかりません.

4

1 に答える 1

0

実際には少し遅れていますが、これは何らかの形で役立つかもしれません。あなたの言うことから、サービスはうまくいくようです。これを試してください: http://www.highonphp.com/fixing-soap-exception-no-xml

または、実際に解決策を見つけることができた場合、他に何が問題に耐えられるのか興味があります.

于 2014-03-19T14:17:31.527 に答える