C# 如何调用WebService

news/2024/7/23 9:22:09 标签: c#, xml, webservice, soap
xmlns="http://www.w3.org/2000/svg" style="display: none;">

前言

虽然webservice技术已经比较老了,但是还是有他应用的场景.

WebService介绍

  • webservice是基于http的soap协议传输数据 webservice=soap=http+xmlwebservice协议就是有http+xml组成的,其中xml中会用到wsdl,wsdl是描述语言xml中的一种格式。
    几个基本概念:
  • SOAP:Simple Object AccessProtocol 简单对象访问协议。基于XML和HTTP
  • WSDL Web Services Description Language Web 服务描述语言。服务所提供的操作 如何访问服务 服务位于何处(通过 URL 来确定就 OK 了)

调用WebService的集中方式

1. Add reference

这个比较简单,基操,就不详述了

2. 生成调用cs文件

使用命令

wsdl /n:命名空间 /out: 路径\文件名称.cs webservice地址?wsdl

将生成好的文件包括到项目中

var WebService = new 类名Service();
WebService.方法名 就可以调用

3. 手写SOAP发送http请求

SOAP协议整体比较简单

一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

  • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
  • 可选的 Header 元素,包含头部信息
  • 必需的 Body元素,包含所有的调用和响应信息
  • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

我们在实际汇总可以用Wizdler 插件或者SOAP UI 里面生成
本文以Wizdler 插件为例
以天气这个接口为例子:
地址为 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl在这里插入图片描述
会自动生成SOAP协议的XML
在这里插入图片描述
接下来可以拷到PostMan 中进行测试

在这里插入图片描述

--本例中用的是Rectsharp,详解可以看另外一个博客
var client = new RestClient("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/soap+xml");
request.AddParameter("application/soap+xml", "<Envelope xmlns=\"http://www.w3.org/2003/05/soap-envelope\">\r\n    <Body>\r\n        <getSupportCity xmlns=\"http://WebXml.com.cn/\">\r\n            <byProvinceName>山东</byProvinceName>\r\n        </getSupportCity>\r\n    </Body>\r\n</Envelope>",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

持续更新中


http://www.niftyadmin.cn/n/668092.html

相关文章

二叉树的顺序存储结构

// c6-1.h 二叉树的顺序存储结构(见图6.1) #define MAX_TREE_SIZE 100 // 二叉树的最大结点数 typedef TElemType SqBiTree[MAX_TREE_SIZE]; // 0号单元存储根结点 struct position {int level,order; // 结点的层,本层序号(按满二叉树计算) };在顺序存储结构中&#xff0c;如图…

六月大盘阶段性调整的方式

恢复新股重新开闸&#xff0c;历来被看做是管理层对股指降温的一种手段。这个手段的恢复现在已是越来越迫切。 股市稳定健康向上发展&#xff0c;资金面、政策面因素非常关键。没有谁能够否定&#xff0c;从去年11月到现在的大B浪反弹不是建立在政策面的坚定做多&#xff0c;而…

ASCLL码对照表

ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)6496、1SOH33!65A97a2STX34"66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT4375K107k12FF44,76L108l13CR45…

Android NoHttp源码阅读指导

Android NoHttp源码阅读指导 版权声明&#xff1a;转载必须注明本文转自严振杰的博客: http://blog.csdn.net/yanzhenjie1003 现在市场的Http框架很多&#xff0c;比如我们熟知的NoHttp、Retrofit、Volley、android-async-http等上层框架&#xff0c;HttpURLConnection、OkHttp…

如何运用趋势线捕捉好买点

在所有股票预测理论中&#xff0c;有一种预测比较简单而且十分有效&#xff0c;投资者只要通过划出简单的直线就基本可以捕捉到股票的买入点&#xff0c;这就是趋势理论。一旦一个股票的运行形成了一定的趋势&#xff0c;那么该股还将沿该趋势继续进行下去。  比如上图中的B、…

Vs2010 每次启动都重复累计加载工具 2c298b35-07da-45f1-96a3-be55d91c8d7a 启动慢的解决方法...

安装了vs2010 和vs2013之后&#xff0c;vs2010 安装了第三方的控件&#xff0c;每次启动2010都installer 工具箱的packge 2c298b35-07da-45f1-96a3-be55d91c8d7a &#xff0c;查了一些资料&#xff0c;删除了注册表里的相关项后&#xff0c;解决了该问题。 Searched thr…

java统计字符个数

public class StringHomework03 {public static void main(String[] args) {try {String s statisticChar1("123abcABC");// 数字个数: 3, 大写字母个数: 3, 小写字母个数: 3System.out.println(s);} catch (Exception e) {System.out.println(e.getMessage());}try…

6成上海姑娘:结婚首为爱情

今天上午&#xff0c;市妇联公布了“上海青年女性价值取向调查”结果。这项调查显示&#xff0c;上海青年女性在价值取向上表现出了多样化的选择&#xff0c;但最显著的特征&#xff0c;是她们的核心价值观正在从传统的集体导向型&#xff0c;转向现代的自我导向型。 在“…