C# WebService 创建、发布、调用的实例讲解
本文将为您详细介绍C# WebService创建、发布、调用的完整攻略,包括以下步骤:
1.创建WebService
2.发布WebService
3.调用WebService
1. 创建WebService
要创建一个C# WebService,首先需要在Visual Studio中创建一个Web项目,步骤如下:
1.在Visual Studio中,选择“新建项目”。
2.在“新建项目”窗口中,选择“Web”节点。
3.选择“ASP.NET Web 应用程序”,设置好项目名称和路径,点击“确定”。
4.在“新建应用程序”窗口中,选择“Web 站点”模板,点击“确定”。
5.在“新建网站”窗口中,选择“XML Web Service”模板,点击“确定”。
当创建完毕后,Visual Studio会自动创建一个名为“Service1.asmx”的文件,这个文件就是WebService的主文件。在这个文件中,我们可以定义我们需要的方法和服务,以下是一个示例代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService {
[WebMethod]
public string HelloWorld() {
return "Hello World!";
}
}
上述代码中,我们定义了一个名为“HelloWorld”的方法,此方法返回一个字符串“Hello World!”。在代码中,我们加入了WebService的特性,如“[WebService]”、“[WebMethod]”等,WebMethod标记中“EnableSession”可以指定是否启用会话。
2. 发布WebService
发布WebService后,才能被客户端调用。发布WebService的步骤如下:
1.右击“Service1.asmx”,选择“发布网站”。
2.选择“本地IIS”选项,设置好路径,点击“确定”即可。
我们发布完毕后,WebService的URL地址就可以通过IIS或者浏览器进行访问,例如:http://localhost/Service1.asmx。当我们在浏览器中运行该地址时,如果页面返回了“描述性错误信息”,说明WebService已经被成功发布到服务器上。
3. 调用WebService
通过WebService的URL地址访问服务,可以获得服务提供的Web方法的列表,例如访问 http://localhost/Service1.asmx 会得到该WebService的所有方法。我们可以使用以下示例代码调用已经发布的WebService:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string url = @"http://localhost/Service1.asmx";
string requestData = string.Format(
@"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/"">
<soapenv:Header/>
<soapenv:Body>
<tem:HelloWorld/>
</soapenv:Body>
</soapenv:Envelope>");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
request.Headers.Add("SOAPAction", "\"http://tempuri.org/HelloWorld\"");
request.ContentLength = requestData.Length;
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(requestData);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string responseString = reader.ReadToEnd();
Console.WriteLine(responseString);
Console.ReadKey();
}
}
}
上述代码中,我们使用HttpWebRequest对象来发送请求,Content部分通过字符串输出,必须按照特定的格式,Content-Type设为“text/xml”,SOAPAction需要指定方法名,Content-Length设置为字符串长度。调用的时候,我们直接使用HttpWebResponse对象得到返回的结果并输出。
示例二
我们也可以使用Visual Studio工具调用WebService,操作步骤如下:
1.在Visual Studio中,选择“项目”->“添加服务引用”。
2.输入已发布WebService的URL地址,点击“使用服务”。
3.在“添加服务引用”窗口中,选择需要引用的服务,设置好所需的名称和相关信息,点击“确定”。
引用完成之后,在项目中会增加一个Web服务的引用。我们通过示例调用这个引用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication1.TestServiceReference; //引用服务
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
TestServiceReference.Service1SoapClient client = new TestServiceReference.Service1SoapClient();
string result = client.HelloWorld();
Console.WriteLine(result);
Console.ReadKey();
}
}
}
上述代码中,我们使用添加服务引用的方式引用了已经发布的WebService,在代码中直接使用这个引用来调用其中的Web方法。
至此,我们已经为您介绍了C# WebService创建、发布、调用的完整攻略,包括创建和发布WebService的详细步骤,以及两个调用示例,希望能够对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# WebService创建、发布、调用的实例讲解 - Python技术站