PHP中調用WebService介面,誰給個詳細代碼呢?

來源:互聯網
上載者:User
有一個WebService介面,http://218.245.0.236:7880/sms?WSDL
請問如何在PHP中調用這個介面呢?誰給個詳細代碼呢?謝謝了!


回複討論(解決方案)

你用的是nusoap擴充類還是用的內建的soap類呢

這個是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,用的裡面lip裡的nusoap.php。
我代碼是這樣寫的

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,這是什麼意思呢?我得傳回值應該是

RESULTCODE #@#BALANCE#@#
RDFLAG#@#MID#@#SPID#@#ACCESSCODE#@#MOBILE#@#STAT#@#DELIVERTIME#@# RDFLAG#@#MID#@#SPID#@#ACCESSCODE#@#MOBILE#@#MSGCONTENT#@#DELIVERTIME#@#
這種形式的!
還有我在網上看得例子上面有這個
$document=$client->document;
echo <<


$document


SoapDocument;
這又是什麼意思呢?謝謝指教!

如果你調用成功了,返回的就是那個webservice執行後的結果呀

首先你要確認下,返回的是不是webservice返回的正確的結果集

編碼也要設定下

        $soapClient->soap_defencoding = 'utf-8';        $soapClient->decode_utf8 = false;        $soapClient->xml_encoding = 'utf-8';

調用前加這段代碼
可以解決亂碼問題

他輸出的是Array,我傳回值的形式應該是1#@#0#@#這種形式的!
我在代碼裡加上

$document=$client->document;echo <<      $document   SoapDocument;?>

這些後,就出現一個Array 3#@#-1#@#,這是什麼意思呢?加上這段代碼是什麼意思呢?

我用的時候沒有加這一串東西。
他這樣寫的意思應該是構造發送過去的包吧。你不用寫這段代碼啊
而且我發覺你用的soapclient方法,這個是PHP 5.0+內建的soap類中的方法,並不是你使用的nusoap擴充類。
如果你要使用soap類要修改php.int中的配置,然後重啟伺服器。
你就這樣寫

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;

就這樣調用 其它不用加

我把你的代碼加上怎麼提示我

$client = new nusoap_client('http://218.245.0.236:7880/sms?WSDL', true);

語法錯誤呢?
你是用什麼軟體編寫的呢?我用的dreamerweaver,環境是warm

你搜一下你的nusoap.php 檔案,client方法具體命名是什麼,之前你寫的soapclient,是soap類中的方法,如果nusoap類裡面的也是叫這個名字可能會產生衝突的

順便推薦你個PHP IDE 叫做PHPSTORM 非常好用

謝謝你的幫忙了!我現在使用代理方式調用可以出來值了,直接調用還是沒出來。第一次接觸PHP什麼都不懂,鬱悶!
還有,我使用代理方式調用的時候換必須有這段代碼才可以

$documentSoapDocument;?>

如果沒有這段代碼直接輸出的話只能出現一個Array,鬱悶。我在看下吧!

樓主能給一下具體代碼嗎?因為我php都沒學過但現在在一周之內必須完成,時間急,求解救!麻煩您把包和php代碼發到我郵箱:1006183252@qq.com 謝謝!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.