ホームページ >バックエンド開発 >PHPチュートリアル >PHP で WebService インターフェイスを呼び出すとき、詳細なコードを提供できるのは誰ですか?
WebService インターフェイス、http://218.245.0.236:7880/sms?WSDL があります
PHP でこのインターフェイスを呼び出すにはどうすればよいですか?誰が詳細なコードを教えてくれますか?ありがとう!
nusoap 拡張クラスを使用していますか?
これは nusoap 拡張クラスの使用方法です。次の nusoap ツールに移動する必要があります。クラスファースト
$soapClient = new nusoap_client("http://218.245.0.236:7880/sms?WSDL",true);$parameters=array(**,**,**);$outString = $soapClient->call("webserviceName", $parameters);//一般是这样调的//call方法里还可以配很多参数,你根据自己的需要来配,有问题的话,去下个抓包工具来看发送和接收到的包就行
nusoap-0.9.5.zip をダウンロードし、中のリップで nusoap.php を使用しました。
私のコードは次のように書かれています
うわー
Web ページで実行すると、配列が返されます。これは何を意味しますか?返さなければならない戻り値は
RESULTCODE #@#BALANCE#@#
RDFLAG#@#MID#@#SPID#@#ACCESSCODE#@#MOBILE#@#STAT#@#DELIVERTIME#@# RDFLAG# @#MID #@#SPID#@#ACCESSCODE#@#MOBILE#@#MSGCONTENT#@#DELIVERTIME#@#
オンラインで見たこの例もあります
$document=$client-> document;
echo 814a211c17044aad29b36497e9f977b2
5b3c1883146963ea67a54655940ef932
a9d9eaf46053e1c34ac3858cf708f4c9
$document
d41d02eda66c8bc111705f0cab386cc5
b419eb28507b28240da1b377e1f7193c
SoapDocument;
これはまた何ですか?それは意味ですか?アドバイスありがとうございます!
まず、返された結果セットが Web サービスによって返された正しい結果セットであるかどうかを確認する必要があります。 set.
include('nusoap.php');// 创建一个soapclient对象,参数是server的WSDL $client = new soapclient('http://218.245.0.236:7880/sms?WSDL', 'wsdl');// 参数转为数组形式传递$aryPara = array('spID'=>'922017', 'Password'=>MD5('admin41501012'));// 调用远程函数$aryResult = $client->call('RetrieveAll',$aryPara);echo $aryResult;
呼び出す前に このコードを追加すると
文字化けの問題を解決できます
出力されるのは Array で、戻り値の形式は 1#@#0#@# の形式になるはずです。
$soapClient->soap_defencoding = 'utf-8'; $soapClient->decode_utf8 = false; $soapClient->xml_encoding = 'utf-8';を追加しました この後、配列 3#@#-1#@# が表示されました。これは何を意味しますか?このコードを追加することは何を意味するのでしょうか?
私が使用したとき、これらのものは追加しませんでした。
このように彼が書いたことは、おそらく送信するパッケージを構築することを意味します。このコードを記述する必要はありません
SOAP クラスを使用したい場合は、php.int の設定を変更してからサーバーを再起動する必要があります。
このように記述するだけです
$document=$client->document;echo <<<SoapDocument<?xml version="1.0" encoding="GB2312"?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd"> <SOAP-ENV:Body> $document </SOAP-ENV:Body></SOAP-ENV:Envelope>SoapDocument; ?>
include('nusoap.php');// 创建一个soapclient对象,参数是server的WSDL $client = new nusoap_client('http://218.245.0.236:7880/sms?WSDL', true);// 解决编码(如果需要的话就加上)/*$soapClient->soap_defencoding = 'utf-8';$soapClient->decode_utf8 = false;$soapClient->xml_encoding = 'utf-8';*/// 参数转为数组形式传递$aryPara = array('spID'=>'922017', 'Password'=>MD5('admin41501012'));// 调用远程函数$aryResult = $client->call('RetrieveAll',$aryPara);echo $aryResult;構文エラーについてはどうすればよいですか?
どのようなソフトウェアを使用して作成しましたか?私は dreamerweaver を使用しています。環境は暖かいです
nusoap.php ファイルを検索して、nusoap クラスのメソッドである場合、以前に作成したクライアント メソッドの具体的な名前を確認できます。この名前だと競合するかも知れません
よろしくお願いします!これで、プロキシ メソッドを使用して値を取得できるようになりましたが、直接呼び出しではまだ取得できません。初めてPHPに触れると何も分からずイライラします!
また、プロキシ メソッドを使用して呼び出すときは、このコードが必要です
$client = new nusoap_client('http://218.245.0.236:7880/sms?WSDL', true);
このコードの直接出力がないと、配列が 1 つしか表示されないので、憂鬱です。見てみるよ!
具体的なコードを教えていただけますか? PHP を学習したことがないのですが、1 週間以内に完了しなければならないので、助けてください。パッケージと PHP コードを私のメールアドレス 1006183252@qq.com に送ってください。ありがとうございます。