C#如何使用Soap协议调用WebService?
WebService是什么?它的作用?
WebService是一个平台独立、低耦合的、自包含的、基于可编程的可使用xml描述、调用的web应用程序,用于开发分布式的交互式的应用程序。
Soap是什么?它的作用?
Simple Object Access Protocol(简单对象访问协议)是交换数据的一种协议规范,是一种轻量的、简单的、基于xml的协议,用于web应用程序之间交换信息或数据交互的结构化或固化的信息。
如何创建基于Soap协议的WebService?
1、创建一个基于SoapHeader类的头部信息类
public class Header : SoapHeader
{
private string _code = string.Empty;
private string _token = string.Empty; public string Code
{
get
{
return _code;
} set
{
_code = value;
}
} public string Token
{
get
{
return _token;
} set
{
_token = value;
}
} public Header()
{ } public Header(string r_code, string r_token)
{
this._code = r_code;
this._token = r_token;
}
}
2、声明类&创建验证方法
public Header header = new Header();
string code = "simoje";
string token = "helloworld";
private bool ValidateToken(string _code, string _token)
{
if (header.Code == code && header.Token == token)
{
return true;
}
else
{
return false;
}
}
3、创建成员方法
[SoapHeader("header")]
[WebMethod]
public string HelloWorld(string para)
{
// do some things
}
注:SoapHeader括号中是声明的类实例名
如何使用Soap协议调用WebService?
1、引用WebService,取名为hello_service
2、声明Header类,并传入code与token
hello_service.Header header = new hello_service.Header();
validate.Code = "simoje";
validate.Token = "hello_world";
3、调用HelloWorld方法
hello_service.Simoje_APISoapClient api = new hello_service.Simoje_APISoapClient();
JObject jo = new JObject(
new JProperty("para", "some paras"));
api.HelloWorld(header, jo.ToString());
注:JObject为newtonsoft.dll封装的json类,可在http://www.cnblogs.com/simoje/p/4766215.html得到。
C#如何使用Soap协议调用WebService?的更多相关文章
- 使用CXF实现基于Soap协议的WebService
本文介绍使用CXF实现基于Soap协议的WebService(CXF的版本是3.0.0) 一. 前言 Java有三种WebService规范:Jax-WS,Jax-RS,Jaxm 1. Jax-WS( ...
- Java 发送SOAP请求调用WebService,解析SOAP报文
https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...
- 在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务
本文介绍了如何在ASP.NET Web Application中将Bing搜索作为Web Service来使用,并通过HTTP的SOAP协议在ASP.NET Web Application中调用Bin ...
- Android之SOAP协议与WebService服务器交互,解决超时的问题
网络搜索大部分不能实际解决问题.特意将解决方法写下.创建MyAndroidHttpTransport 类 , package com.example.omhandroid.lib; import or ...
- Java调用WebService方法总结(8)--soap.jar调用WebService
Apache的soap.jar是一种历史很久远的WebService技术,大概是2001年左右的技术,所需soap.jar可以在http://archive.apache.org/dist/ws/so ...
- iOS webservice接口soap协议调用遇到的问题
这是第一次调webservice的接口,并且后台没太做过移动端的接口,所以遇到了很多让人崩溃的困难.吃一堑长一智,所以这种时候懒得写博客的我就要趁着这股热乎劲把这次的过程记录下来啦~ 首先要做的就是, ...
- HttpURLConnection 直接发送soap消息调用webservice
httpConn = (HttpURLConnection) new URL(urlString).openConnection(); httpConn.setRequestProperty(& ...
- webservice第二篇【自定义webservice服务、soa、uddi概念、soap协议】
自定义webservice服务 我们在上一章节中已经使用wsimport生成本地代理来调用webservice的服务了,其实我们自己写的web应用程序也是可以发布webservice的 我们发布了we ...
- [转]Net 下采用GET/POST/SOAP方式动态调用WebService C#实现
本文转自:http://www.cnblogs.com/splendidme/archive/2011/10/05/2199501.html 一直以来,我们都为动态调用WebService方法而烦恼. ...
随机推荐
- Struts2 源码分析——调结者(Dispatcher)之action请求
章节简言 上一章笔者讲到关于struts2启动的时候加载对应的准备工作.如加载配置文件struts.xml之类的信息.而相应的这些操作都离不开Dispatcher类的帮助.如果读者只是认为Dispat ...
- 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇
之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...
- Hibernate —— 检索策略
一.Hibernate 的检索策略本质上是为了优化 Hibernate 性能. 二.Hibernate 检索策略包括类级别的检索策略.和关联级别的检索策略(<set> 元素) 三.类级别的 ...
- jQuery 判断是否包含某个属性
1.Get the attribute, check the value var attr = $(this).attr('name'); // For some browsers, `attr` i ...
- SQL 循环语句 while 介绍 实例
declare @i int begin insert into test (userid) values(@i) end --------------- while 条件 begin 执行操作 en ...
- c#动态加载卸载DLL的方法
这篇文章介绍了c#动态加载卸载DLL的方法,有需要的朋友可以参考一下 c#中通过反射可以方便的动态加载dll程序集,但是如果你需要对dll进行更新,却发现.net类库没有提供卸载dll程序集的方法.在 ...
- EntityFrame Work 6 Code First 配置字段为varchar 类型
EntityFrame Work 6 配置字符串属性是否支持Unicode 内容 默认情况下,字符串为Unicode(SQLServer 中的nvarchar).您可以使用IsUnicode 方法指定 ...
- 排列组和在c语言中的应用
排列组和在c中很常见,但是这个排列组和是通过循环来实现的,和数学中的还是有一点区别的,而且c中的方法也不尽相同,而且我遇到c中的数学问题总会纠结于数学上是怎么实现的但是我自己又不会,所以就没了兴趣,例 ...
- MyEclipse或者Eclipse内存溢出问题
对于一些项目,我们经常会遇到内存溢出的问题,这个时候我们就需要进行设置JDK的各个内存的大小了. 如果是运行项目以后出现问题的话,那么主要还是jdk或者是tomcat的内存问题,至于网上说的xxx.i ...
- JSTL标签功能集锦
1.<fmt:parseNumber integerOnly="true" value="2/3" /> 结果为0 功能:fmt:parseNumb ...