ホームページ > バックエンド開発 > PHPチュートリアル > PHP で WebService インターフェイスを呼び出すとき、詳細なコードを提供できるのは誰ですか?

PHP で WebService インターフェイスを呼び出すとき、詳細なコードを提供できるのは誰ですか?

WBOY
リリース: 2016-06-23 13:45:41
オリジナル
876 人が閲覧しました

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 <<


$document


SoapDocument;
これはまた何ですか?それは意味ですか?アドバイスありがとうございます!

呼び出しが成功した場合、返される結果は Web サービスの実行後の結果です

まず、返された結果セットが 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#@# が表示されました。これは何を意味しますか?このコードを追加することは何を意味するのでしょうか?


私が使用したとき、これらのものは追加しませんでした。
このように彼が書いたことは、おそらく送信するパッケージを構築することを意味します。このコードを記述する必要はありません

そして、使用したsoapclientメソッドは、使用したnusoap拡張クラスではなく、PHP 5.0以降に付属するsoapクラスのメソッドであることに気付きました。

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 クラスのメソッドである場合、以前に作成したクライアント メソッドの具体的な名前を確認できます。この名前だと競合するかも知れません

ちなみに、とても使いやすい PHPSTORM という PHP IDE をお勧めします

よろしくお願いします!これで、プロキシ メソッドを使用して値を取得できるようになりましたが、直接呼び出しではまだ取得できません。初めてPHPに触れると何も分からずイライラします!

また、プロキシ メソッドを使用して呼び出すときは、このコードが必要です

$client = new nusoap_client('http://218.245.0.236:7880/sms?WSDL', true);
ログイン後にコピー

このコードの直接出力がないと、配列が 1 つしか表示されないので、憂鬱です。見てみるよ!

具体的なコードを教えていただけますか? PHP を学習したことがないのですが、1 週間以内に完了しなければならないので、助けてください。パッケージと PHP コードを私のメールアドレス 1006183252@qq.com に送ってください。ありがとうございます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート