C#使用PHP服務(wù)端的Web Service通信實(shí)例
注:本例中構(gòu)建Web Service采用SOAP方式,通過php插件NuSoap來搭建SOAP服務(wù)器。
<?
require_once("lib/nusoap.php"); //調(diào)用NuSoap
$server = new soap_server(); //創(chuàng)建soap服務(wù)端
$server->configureWSDL("login_service"); //配置WSDL
$namespace = "http://www.abcd9.com";
$server->wsdl->schemaTargetNamespace = $namespace; //設(shè)置wsdl命名空間為http://www.abcd9.com
$server->register( // 注冊Web服務(wù)
'login_verifiy', //定義名稱
array('name'=>'xsd:string','pw'=>'xsd:string'), //接受參數(shù)
array('return'=>'xsd:string'), //返回
$namespace, //命名空間
false, // soapaction:默認(rèn)
'rpc', // 類型: rpc or document
'encoded', // 參數(shù):encoded(編碼)或 literal(文字)
'A web method of login' //描述
);
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($POST_DATA); //將提交的數(shù)據(jù)傳遞給soap服務(wù)
function login_verifiy($user,$pw) { //服務(wù)執(zhí)行內(nèi)容,本示例中為顯示輸入的帳號(hào)密碼
return 'user:'.$user.' password:'.$pw);
}
?>
C#客戶端調(diào)用:
[DllImport("kernel32")] //調(diào)用api函數(shù)讀ini文件。返回值為字符串緩沖區(qū)的長度
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
private void Form1_Load(object sender, EventArgs e)
{
StringBuilder temp = new StringBuilder(256);
GetPrivateProfileString("system", "url", null, temp, 256, System.IO.Directory.GetCurrentDirectory()+"\\config.ini");
//通過讀取config.ini配置文件(結(jié)構(gòu)見附加內(nèi)容)來獲取webservice url
Program.server_url = temp.ToString(); //Program.cs中的全局變量server_url用以儲(chǔ)存webservice url
}
private void button1_Click(object sender, EventArgs e)
{
WebReference.login_service l = new WebReference.login_service();
string s=l.login_verifiy(username.Text, password.Text);
MessageBox.Show(s);
}
附config.ini內(nèi)容:
[system]
url=http://127.0.0.1:100/
- C#發(fā)送HttpPost請求來調(diào)用WebService的方法
- C#動(dòng)態(tài)webservice調(diào)用接口
- c# JSON返回格式的WEB SERVICE
- c#動(dòng)態(tài)調(diào)用Webservice的兩種方法實(shí)例
- C# .Net動(dòng)態(tài)調(diào)用webService實(shí)現(xiàn)思路及代碼
- asp.net(c#)動(dòng)態(tài)修改webservice的地址和端口(動(dòng)態(tài)修改配置文件)
- c#動(dòng)態(tài)改變webservice的url訪問地址
- c#編寫webservice服務(wù)引用實(shí)例分享
- C# WebService發(fā)布以及IIS發(fā)布
- C#使用Http Post方式傳遞Json數(shù)據(jù)字符串調(diào)用Web Service
相關(guān)文章
掌握Laravel框架中容器的管理依賴實(shí)現(xiàn)松耦合
這篇文章主要為大家介紹了掌握Laravel框架中容器管理依賴實(shí)現(xiàn)松耦合,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法
這篇文章主要介紹了Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法,以項(xiàng)目實(shí)例形式較為詳細(xì)的分析了Laravel框架使用Caching緩存的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
用PHP實(shí)現(xiàn)的服務(wù)端socket具體實(shí)例
這篇文章主要介紹了用PHP實(shí)現(xiàn)的服務(wù)端socket具體實(shí)例,有對這方面不懂的同學(xué)可以參考下2021-01-01
Django中的cookie與session操作實(shí)例代碼
本文通過示例代碼給大家介紹了Django中的cookie與session操作,需要的朋友參考下吧2017-08-08
仿dedecms下拉分頁樣式修改的thinkphp分頁類實(shí)例
這篇文章主要介紹了仿dedecms下拉分頁樣式修改的thinkphp分頁類,可實(shí)現(xiàn)類似dedecms下拉分頁樣式的效果,需要的朋友可以參考下2014-10-10
php文件擴(kuò)展名判斷及獲取文件擴(kuò)展名的N種方法
本篇文章主要通過代碼給大家介紹php文件擴(kuò)展名判斷以及獲取文件擴(kuò)展名的N種方法,需要的朋友跟著腳本之家小編一起學(xué)習(xí)學(xué)習(xí)吧2015-09-09
PHP基于yii框架實(shí)現(xiàn)生成ICO圖標(biāo)
本文給大家分享了2則php生成ICO圖標(biāo)的代碼,第一款是基于YII框架實(shí)現(xiàn)的,第二款是純php編寫,都非常的不錯(cuò),有需要的小伙伴可以參考下2015-11-11

