使用C#建立webservice及三種呼叫方式 (轉)
使用C#建立webservice及三種呼叫方式 (轉)[@more@]戰略的一個比較重要的部分就是service,利用webservice我們可以建立真正有效的分散式應用。
下面,我們對webservice做一些說明。
假設A是客戶端,B是webservice服務端,透過向傳送p請求,webservice返回客戶端格式的資料。
現在我們看一看建立一個webservice的大致過程:
服務端的webservice是必須要建的。中間的soap,xml我們不用去關心,在客戶端這邊,比較重要的是如何從webservice取得?答案是用的是物件。客戶端由物件(proxy)負責與webservice的通訊。所以在客戶端使用webservice,完全和使用一個本地物件是一樣的。
我們現在以一個簡單的例項來說明。
開啟vs.net,新建工程(.net web服務),在位置中鍵入其中webserver就是工程的名字。確定後,出現一個Service1.asmx.cx,雙擊,出現程式碼視窗,
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace webserver
{
///
/// Service1 的摘要說明。
///
(1)
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN:該是 Web 服務設計器所必需的
InitializeComponent();
}
#region Component Designer generated code
//Web 服務設計器所必需的
private IContainer components = null;
///
/// 設計器支援所需的方法 - 不要使用程式碼編輯器修改
/// 此方法的內容。
///
private void InitializeComponent()
{
}
///
/// 清理所有正在使用的資源。
///
protected overr void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion
// WEB 服務示例
// HelloWorld() 示例服務返回字串 Hello World
// 若要生成,請取消註釋下列行,然後儲存並生成專案
// 若要測試此 Web 服務,請按 F5 鍵
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
}
}
下面在(1)處加入
[WebService(Namespace="")]
這是因為soap是基於http協議上的,客戶端無法知道webservice位於那個伺服器上。在實際應用中,比如上放置這個webservice,則Namespace改為/webserver.
下面我們給這個webservice新增一個方法。
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
微軟幫我們寫好了一個,接著新增一個方法。方法名稱叫show.
[WebMethod]
public string show(string yourname)
{
return “”+”歡迎”+yourname;
}
現在,就可以執行了,按F5,點選show,輸入你的名字,然後點選invote
看到了吧。
歡迎yyg
成功了。開啟bin目錄,Vs.net已經將proxy做好了.webserver.dll.
現在我們在不同的環境下測試:
1. 開啟vs.net,新建”應用程式”工程,命名為Client,增加按鈕,文字框。
現在要用到代理了,右鍵單擊右邊的reference(引用),選擇”新增引用”,選擇瀏覽,找到webserver目錄下的bin目錄下的webserver.dll
再加入一個system.web.webservices的引用,在列表中有。
在form1.cs裡,加入
using System.Web.Services;
using webserver;
然後在
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
後面,插入
private webserver.service1 Client
建立一個service1的例項。雙擊按鈕,程式碼如下:
private void button1_Click( sender, System.EventArgs e)
{
Client =new Service1();
string name;
name=Client.show("龍捲風.NET");
textBox1.Text=name;
}
按F5,執行工程,點選按鈕,文字框中顯示
歡迎龍捲風.NET
2. Asp.NET web視窗的測試
方法與上面的一模一樣,新增引用,建立service1的例項
在此不在細說。
3.在VB中測試
這個就要相對來說複雜一些
首先在vb中建立一個”標準EXE”的工程。新增引用: Soap Type library。注意:如果沒有Microsoft Soap Toolkit,是沒有這個型別庫的。
可以在中。
新增一個text
Private Sub Form_Load()
Text1.Text = add()
End Sub
Public Function Add() As String
Dim objSoapClient As New SoapClient
objSoapClient.ClientProperty("ServerHTTPRequest") = True
Call objSoapClient.mssonit("service1.asmx?WSDL", "Service1", "Service1Soap")
這句也可以
objSoapClient.mssoapinit("service1.asmx?WSDL")
Add = objSoapClient.Show("龍捲風.NET")
End Function
成功需要注意的:
執行服務端webservice的程式,出現下面時
支援下列操作。有關正式定義,請檢視服務說明。
點選服務說明,會得到完整的wsdl
Service1.asmx?WSDL
我們就要使用這個檔案,其中包含了我們定義的方法等等。
Mssoapinit(bstrWSDLFile as string,[bStrServiceName as string ],[bStrport as string ] ,[bstrWSMLDile as string])的用法:
其中第二個,第三個引數在wsdl檔案中可以找到。也可以省略。
後續:還有從COM中生成wsdl檔案等等,我會陸續推出的。
下面,我們對webservice做一些說明。
假設A是客戶端,B是webservice服務端,透過向傳送p請求,webservice返回客戶端格式的資料。
現在我們看一看建立一個webservice的大致過程:
服務端的webservice是必須要建的。中間的soap,xml我們不用去關心,在客戶端這邊,比較重要的是如何從webservice取得?答案是用的是物件。客戶端由物件(proxy)負責與webservice的通訊。所以在客戶端使用webservice,完全和使用一個本地物件是一樣的。
我們現在以一個簡單的例項來說明。
開啟vs.net,新建工程(.net web服務),在位置中鍵入其中webserver就是工程的名字。確定後,出現一個Service1.asmx.cx,雙擊,出現程式碼視窗,
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace webserver
{
///
/// Service1 的摘要說明。
///
(1)
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN:該是 Web 服務設計器所必需的
InitializeComponent();
}
#region Component Designer generated code
//Web 服務設計器所必需的
private IContainer components = null;
///
/// 設計器支援所需的方法 - 不要使用程式碼編輯器修改
/// 此方法的內容。
///
private void InitializeComponent()
{
}
///
/// 清理所有正在使用的資源。
///
protected overr void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}
#endregion
// WEB 服務示例
// HelloWorld() 示例服務返回字串 Hello World
// 若要生成,請取消註釋下列行,然後儲存並生成專案
// 若要測試此 Web 服務,請按 F5 鍵
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
}
}
下面在(1)處加入
[WebService(Namespace="")]
這是因為soap是基於http協議上的,客戶端無法知道webservice位於那個伺服器上。在實際應用中,比如上放置這個webservice,則Namespace改為/webserver.
下面我們給這個webservice新增一個方法。
// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
微軟幫我們寫好了一個,接著新增一個方法。方法名稱叫show.
[WebMethod]
public string show(string yourname)
{
return “”+”歡迎”+yourname;
}
現在,就可以執行了,按F5,點選show,輸入你的名字,然後點選invote
看到了吧。
成功了。開啟bin目錄,Vs.net已經將proxy做好了.webserver.dll.
現在我們在不同的環境下測試:
1. 開啟vs.net,新建”應用程式”工程,命名為Client,增加按鈕,文字框。
現在要用到代理了,右鍵單擊右邊的reference(引用),選擇”新增引用”,選擇瀏覽,找到webserver目錄下的bin目錄下的webserver.dll
再加入一個system.web.webservices的引用,在列表中有。
在form1.cs裡,加入
using System.Web.Services;
using webserver;
然後在
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
後面,插入
private webserver.service1 Client
建立一個service1的例項。雙擊按鈕,程式碼如下:
private void button1_Click( sender, System.EventArgs e)
{
Client =new Service1();
string name;
name=Client.show("龍捲風.NET");
textBox1.Text=name;
}
按F5,執行工程,點選按鈕,文字框中顯示
歡迎龍捲風.NET
2. Asp.NET web視窗的測試
方法與上面的一模一樣,新增引用,建立service1的例項
在此不在細說。
3.在VB中測試
這個就要相對來說複雜一些
首先在vb中建立一個”標準EXE”的工程。新增引用: Soap Type library。注意:如果沒有Microsoft Soap Toolkit,是沒有這個型別庫的。
可以在中。
新增一個text
Private Sub Form_Load()
Text1.Text = add()
End Sub
Public Function Add() As String
Dim objSoapClient As New SoapClient
objSoapClient.ClientProperty("ServerHTTPRequest") = True
Call objSoapClient.mssonit("service1.asmx?WSDL", "Service1", "Service1Soap")
這句也可以
objSoapClient.mssoapinit("service1.asmx?WSDL")
Add = objSoapClient.Show("龍捲風.NET")
End Function
成功需要注意的:
執行服務端webservice的程式,出現下面時
支援下列操作。有關正式定義,請檢視服務說明。
點選服務說明,會得到完整的wsdl
Service1.asmx?WSDL
我們就要使用這個檔案,其中包含了我們定義的方法等等。
Mssoapinit(bstrWSDLFile as string,[bStrServiceName as string ],[bStrport as string ] ,[bstrWSMLDile as string])的用法:
其中第二個,第三個引數在wsdl檔案中可以找到。也可以省略。
後續:還有從COM中生成wsdl檔案等等,我會陸續推出的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993383/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一種WebService的呼叫方式Web
- VS 2005中使用C#建立及呼叫WebService完整例項C#Web
- C#呼叫webserviceC#Web
- webapi建立和呼叫WebServiceWebAPI
- C#動態呼叫webserviceC#Web
- C#中WebService的建立、部署和呼叫的簡單例項C#Web單例
- Webservice呼叫方式:axis,soap詳解Web
- php呼叫webservice的幾種方法PHPWeb
- javascript建立物件的三種方式JavaScript物件
- C#例項化物件的三種方式及效能對比C#物件
- 建立執行緒的三種方式執行緒
- 函式呼叫的三種方式 __cdecl、__stdcall、__fastcall函式AST
- Java建立WebService服務及客戶端實現(轉)JavaWeb客戶端
- Golang切片的三種簡單使用方式及區別Golang
- 關於C#委託三種呼叫的分享C#
- .Net下采用GET/POST/SOAP方式動態呼叫WebService的簡易靈活方法(C#)WebC#
- shell中呼叫shell的三種方式&並行shell並行
- Java併發(三)----建立執行緒的三種方式及檢視程式執行緒Java執行緒
- java開發webservice幾種方式小結JavaWeb
- LoadRunner測試WebService的3種方式Web
- Python 建立單例模式的三種方式Python單例模式
- webservice介面呼叫Web
- [轉載]javascript建立物件的幾種方式JavaScript物件
- C#中陣列的三種訪問方式C#陣列
- Vue元件開發實錄:元件的三種呼叫方式Vue元件
- DLL檔案在Delphi的建立及呼叫 (轉)
- ubuntu建立使用者的兩種方式Ubuntu
- EOS原始碼解析 建立賬號的三種方式。原始碼
- vue 元件的三種使用方式教程Vue元件
- React | ref三種使用方式總結React
- 幾種函式呼叫方式函式
- Ajax呼叫WebService(一)Web
- webservice中呼叫structWebStruct
- js 呼叫 WebService 方法JSWeb
- C#轉義字元的兩種處理方式C#字元
- HTML轉換到PDF的三種方式HTML
- PHP使用SOAP呼叫.net的WebService資料PHPWeb
- Android中js呼叫java本地方法的三種方式AndroidJSJava