SOAP Webサービス通信の問題

WBOY
WBOYオリジナル
2016-06-23 13:30:271182ブラウズ

$client = new SoapClient($wsdl_url,["trace"=>true,'encoding'=>'UTF-8','soap_version'=>SOAP_1_2,'uri'=>'http:// ws.apache.org/axis2']);
print_r($client->__getFunctions());
$xml=0292f26bb5e8c205b40b12736b9bccd1
58613a913f649e803df57c76e6a932e4
590044628d060beb6e48d3862b42ba66
29cc901cdac01f29308fafbb5bbc7e0bSLDQe2b65bb94a283111fcabb18da5f9dd50
6f93333cf268777065e7e0722a54a4b0
227f4547dda44a008fa642be577b67fe
XML;

主にここ: 配列を使用するだけエラー
$client->__soapCall('getDepartInfo',$xml);

致命的なエラー: SoapFault 例外をキャッチできませんでした: [HTTP]
でホストに接続できませんでした
wsdl が発行されるまで待機してください


議論(解決策)

まあ、容量が大きすぎます。 。 。 。 。

http://www.foxwho.com/wsdl.txt
このアドレスを確認してください

夜の 8 時にオンライン、夕食のために家に帰りましょう

struct getDepartInfo { string strXml;}
から、
$client->__soapCall('getDepartInfo', array('strXml' => $xml));
を次のように呼び出す必要があることがわかりますthis

struct getDepartInfo { string strXml;}
から、この
$client->__soapCall('getDepartInfo', array('strXml' => $xml));

のように呼び出す必要があることがわかります。

报错
930406f08da8ee4a2ff134b688d29d1d
809680c31360f4198fd1ab9e85397212a9d9eaf46053e1c34ac3858cf708f4c98afc0fa4351ee5be0f8f199ab4f9800fd41d02eda66c8bc111705f0cab386cc5b419eb28507b28240da1b377e1f7193c

0c6dc11e160d3b678d68754cc175188a
0c6dc11e160d3b678d68754cc175188aCould not connect to host
0c6dc11e160d3b678d68754cc175188aSoapFault Object
(
    [message:protected] => Could not connect to host
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => /www/wwwroot/default/p.php
    [line:protected] => 29
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [function] => __doRequest
                    [class] => SoapClient
                    [type] => ->
                    [args] => Array
                        (
                            [0] => 930406f08da8ee4a2ff134b688d29d1d
809680c31360f4198fd1ab9e85397212a9d9eaf46053e1c34ac3858cf708f4c98afc0fa4351ee5be0f8f199ab4f9800fd41d02eda66c8bc111705f0cab386cc5b419eb28507b28240da1b377e1f7193c

                            [1] => http://****:80/axis2/services/WS4SZ.WS4SZHttpSoap11Endpoint/
                            [2] => urn:getDepartInfo
                            [3] => 1
                            [4] => 0
                        )

                )

struct getDepartInfo { string strXml;}
可知,要这样调用
$client->__soapCall('getDepartInfo', array('strXml' => $xml));


帮我调试一下,联系我QQ 我给你文件。改天请你吃饭

Could not connect to host 无法连接到主机
你在 wsdl 中隐去了目标 url ,这就没法帮你了

vs2010 的 wsdl 工具生成的方法是

    public string getDepartInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)] string strXml) {        object[] results = this.Invoke("getDepartInfo", new object[] {                    strXml});        return ((string)(results[0]));    }
可知并没有搞错

生成的 url 是
this.Url = "http://***:80/axis2/services/WS4SZ.WS4SZHttpSoap11Endpoint/";

Could not connect to host 无法连接到主机
你在 wsdl 中隐去了目标 url ,这就没法帮你了

vs2010 的 wsdl 工具生成的方法是

    public string getDepartInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)] string strXml) {        object[] results = this.Invoke("getDepartInfo", new object[] {                    strXml});        return ((string)(results[0]));    }
可知并没有搞错

生成的 url 是
this.Url = "http://***:80/axis2/services/WS4SZ.WS4SZHttpSoap11Endpoint/";


发你短信信息里,因为这个不能公开

モデレータ様、ありがとうございます。相手がポートをパブリック IP に変更してからもう一度試してみます。
いつか蘇州に行ったら試してみます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。