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日

相关文章

  • 超详细讲解Java异常

    超详细讲解Java异常 在Java编程过程中,异常处理是非常重要的一部分。异常是程序运行过程中的非期望事件,如输入数据错误、网络中断等,如果不进行处理,程序将可能会崩溃、出现严重错误,甚至导致系统崩溃。因此,Java提供了一套异常机制,使程序在遇到异常时能够进行妥善的处理,保证程序的稳定性和可靠性。 异常的分类 Java中的异常可以分为两类:Checked …

    C# 2023年5月15日
    00
  • ASP.NET Core中间件用法与官方常用中间件介绍

    ASP.NET Core中间件用法与官方常用中间件介绍 在ASP.NET Core应用程序中,中间件是处理HTTP请求和响应的组件。本攻略将介绍ASP.NET Core中间件的用法和官方常用中间件,并提供两个示例说明。 1. 中间件用法 在ASP.NET Core应用程序中,中间件是处理HTTP请求和响应的组件。中间件可以执行以下操作: 处理HTTP请求。 …

    C# 2023年5月16日
    00
  • ThreadLocal 在上下文传值场景实践源码

    ThreadLocal 是 Java 中常用的多线程编程技术之一,它可以在多个线程环境中保存并传递数据,将数据与线程绑定在一起,实现线程的局部变量。在一些上下文传值的场景中,ThreadLocal 可以较为方便的实现参数的传递。接下来,本文将详细讲解 ThreadLocal 在上下文传值场景实践源码的完整攻略。 什么是 ThreadLocal ThreadL…

    C# 2023年6月7日
    00
  • C# Convert.ToBoolean()方法: 将指定的值转换为布尔值

    Convert.ToBoolean() 是 C# 中的一个静态方法,用于将给定的对象或指定数值类型的值转换为布尔值类型。 该方法的返回值类型为 bool。 该方法有以下三种重载形式: Convert.ToBoolean(bool value):直接将布尔值类型的变量转换为 bool 类型。 Convert.ToBoolean(byte value):将无符号…

    C# 2023年4月19日
    00
  • C#实现简单俄罗斯方块

    C#实现简单俄罗斯方块 简介 俄罗斯方块是经典的休闲益智游戏之一,玩家需要操作方块进行移动、旋转使其落到底部并消除行。而我们可以通过C#语言来实现这个小游戏。 前置知识 在开始之前,需要具备一定的C#编程基础,以及对屏幕绘制和输入处理有一定的了解。 实现步骤 定义类 我们需要定义一个TetrisBlock类来表示方块,同时定义一个TetrisGame类来控制…

    C# 2023年6月6日
    00
  • C# Directory.Move(string sourceDirName, string destDirName):移动指定目录

    Hello,Directory.Move(string sourceDirName,string destDirName) 是 C# 中用于移动目录的方法,它的主要作用是将一个目录从一个位置移动到另一个位置。下面是使用方法的完整攻略: 方法原型 Directory.Move(string sourceDirName,string destDirName) 参…

    C# 2023年4月19日
    00
  • C#构建分页应用的方法分析

    C#构建分页应用的方法分析 分页是Web开发中非常常见的功能之一,通过分页可以将大量的数据进行分割并且以可读性更高的形式显示给用户。在C#中,我们可以通过多种方式来构建分页应用。本文将会详细介绍三种常见的构建分页应用的方法。 方法一:使用SQL语句进行分页 第一种方式是使用SQL语句进行分页,在这种方法中,我们可以在查询的SQL语句中添加分页的条件,从而实现…

    C# 2023年5月31日
    00
  • Unity 使用tiledmap解析地图的详细过程

    下面我将为你详细讲解Unity使用TiledMap解析地图的详细过程。 1. 安装TiledMap插件 首先需要在Unity中安装TiledMap插件,步骤如下: 进入Unity Asset Store,搜索“Tiled2Unity”并下载安装。 安装完成后,在Unity的菜单栏中选择“Tiled2Unity” > ”Import Tiled Map“…

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