C# WebService创建、发布、调用的实例讲解

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技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • c#根据文件类型获取相关类型图标的方法代码

    获取相关文件类型图标是开发文件管理器、文件上传下载等功能中常用的技术,以下是使用C#获取文件类型图标的方法代码完整攻略。 Step 1:引入命名空间 使用C#获取文件类型图标需要引入System.Drawing和System.Runtime.InteropServices命名空间。 using System.Drawing; using System.Run…

    C# 2023年6月1日
    00
  • C# 禁止应用程序多次启动的实例

    C#应用程序在默认情况下可以被多次启动的实例。但有些应用程序需要保证只能启动一个实例,可以通过以下两种方式来实现该需求。 方法一:使用 Mutex 对象控制应用程序启动 Mutex 对象是一种操作系统原语,可控制多个进程或线程执行特定代码的互斥访问。应用程序可以使用 Mutex 类来创建一个已命名的 Mutex 对象,并在不同进程之间共享该对象。当有一个进程…

    C# 2023年5月15日
    00
  • C#连续任务Task.ContinueWith方法

    下面是关于”C#连续任务Task.ContinueWith方法”的完整攻略。 什么是Task.ContinueWith方法 在C#中,Task.ContinueWith方法用于在一个任务完成后执行一些额外的操作。具体来说,该方法使得一个任务能够与另一个相关的任务链接起来,当前一个任务完成后,可以立即启动与它相关的下一个任务,从而形成一个连续的任务链。 Tas…

    C# 2023年6月6日
    00
  • C# 3DES加密详解

    首先,我们先来了解一下3DES加密算法。 3DES即Triple DES,是DES加密算法的加强版。在3DES加密算法中,数据被加密的过程其实就是三次DES加密的过程,即使用三个不同的密钥对数据进行加密。 下面来介绍一下C#中的3DES加密操作。 算法说明 在C#中,我们使用System.Security.Cryptography命名空间中的TripleDE…

    C# 2023年6月8日
    00
  • C#中string用法实例详解

    C#中string用法实例详解 什么是string string是C#中的基础数据类型之一,它用于表示文本字符串。可以用 string 定义字符串变量。 常见的string使用方法 字符串拼接 在C#中,我们可以用+号操作符来实现字符串的拼接: string str1 = "hello"; string str2 = "worl…

    C# 2023年5月31日
    00
  • C# 获取属性名的方法

    获取 C# 对象的属性名可能是我们在开发中需要经常使用到的操作。下面是获取 C# 对象属性名的两种常见方式: 通过字符串常量 我们可以通过字符串常量获取对应属性名。首先我们需要在对象中声明属性,然后使用字符串常量将属性名称与属性值绑定。下面是一个使用字符串常量获取属性名的示例代码: using System; namespace AttributeDemo …

    C# 2023年5月31日
    00
  • asp.net 文章分页显示实现代码

    下面是关于实现asp.net文章分页显示的攻略和示例: 1. 确定分页参数 文章分页需要确定几个重要的参数: 每页显示的文章数量 当前页码 文章总数 总页数 可以根据以上参数进行分页计算,具体代码可以参考下面的示例。 2. 实现后端分页方法 接下来需要在代码中实现后端分页方法,下面是一个简单的示例: // 分页方法 public List<Articl…

    C# 2023年5月31日
    00
  • C# Page用于各页面继承功能实例

    C# Page 是一个 ASP.NET web form 中的类,定义在 System.Web.UI 命名空间中,用于代码重用和封装网站实现的功能。C# Page 通过继承,使得子页面可以拥有与父页面相同的特性和方法,使得代码的复用性和可维护性得到提高。 使用 C# Page 继承的方法,首先需要定义一个父级页面,父级页面需要实现想要继承的功能,例如在页面加…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部