c# 纯代码调用 webservice
public static class RequestHelper
{
public class RequestResult
{
public RequestResult(bool requestResult, string resultData)
{
this.Result = requestResult;
this.ResultData = resultData;
} public bool Result { get; private set; }
public string ResultData { get; private set; }
} public static RequestResult Request(string url, string method, string data, Dictionary<string, string> header, string contentType = "application/json;charset=utf-8")
{
HttpWebRequest request = null;
if (url.ToLower().StartsWith("https"))
{
ServicePointManager.ServerCertificateValidationCallback =
new System.Net.Security.RemoteCertificateValidationCallback(delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
});
request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
}
else
request = WebRequest.Create(url) as HttpWebRequest; request.Method = method;
request.AllowAutoRedirect = true;
request.Proxy = new WebProxy { UseDefaultCredentials = true };
request.ContentType = contentType;
foreach (var h in header)
request.Headers.Add(h.Key, h.Value); try
{
if (data != null && method != "GET")
{
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(data);
}
} var response = request.GetResponse() as HttpWebResponse;
var responseStream = response.GetResponseStream();
var reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
string result = reader.ReadToEnd();
return new RequestResult(true, result);
}
catch (Exception ex)
{
return new RequestResult(false, ex.Message);
}
}
}
var serviceUrl = @"http://192.168.0.xxx:xxxx/webService/xxxx.asmx";
var header = new Dictionary<string, string>();
header.Add("SOAPAction", "http://tempuri.org/GetAuthorizationCode");
var body =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+ " <soap:Body>"
+ " <GetAuthorizationCode xmlns=\"http://tempuri.org/\">"
+ " <loginName>180001</loginName>"
+ " <token>6B17644986B630E9C284C07F4D412C89</token>"
+ " </GetAuthorizationCode>"
+ " </soap:Body>"
+ "</soap:Envelope>"; var result = RequestHelper.Request(serviceUrl, "POST", body, header, "text/xml;charset=utf-8");
if (!result.Result)
return; var doc = new XmlDocument();
var namespaceManager = new XmlNamespaceManager(doc.NameTable);
namespaceManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
namespaceManager.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
namespaceManager.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
namespaceManager.AddNamespace("mynamespace", "http://tempuri.org/");
doc.LoadXml(result.ResultData);
var resultNode = doc.SelectSingleNode(@"soap:Envelope/soap:Body/mynamespace:GetAuthorizationCodeResponse/mynamespace:GetAuthorizationCodeResult", namespaceManager);
var resultFlag = bool.Parse(resultNode.InnerText);
其中调用和解析的xml样式,请参照接口中格式中的内容。
c# 纯代码调用 webservice的更多相关文章
- HttpWebRequest,HttpWebResponse C# 代码调用webservice,参数为xml
先上调用代码 public static string PostMoths(string url, string Json) { System.Net.HttpWebRequest request; ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- Salesforce 使用Js 调用Webservice实例
1,创建 Custom Button 在页面上 2, 创建CustomJs 代码调用Webservice <!--参数名区分大小写,对于跨层object直接在Object名后直接加参字段名即可- ...
- cxf 生成客户端代码调用服务
cxf是另一种发布webservice的方式,与jdk提供的相比 jdk提供的是wsimport cxf 提供的是 wsdl2java- d 地址 根据http://www.cnblogs.com/f ...
- Java调用WebService方法总结(5)--Axis2调用WebService
Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...
- Java调用WebService方法总结(4)--Axis调用WebService
Axis是比较常用的WebService框架,该项目在2006实现了最终版,后面就没有更新了.文中demo所使用到的软件版本:Java 1.8.0_191.Axis 1.4. 1.准备 参考Java调 ...
- Java调用WebService方法总结(3)--wsimport调用WebService
wsimport是JDK自带的把WSDL转成Java的工具,可以很方便的生成调用WebService的代码.文中所使用到的软件版本:Java 1.8.0_191. 1.准备 参考Java调用WebSe ...
- 用JDK自带的工具生成客户端调用Webservice的代码
JAVA下客户端调用Webservice代码简直是让人心生畏惧,今日尝试,做记录如下,参考网上的众多解决方案,下面这种方式是比较简单的. 在jdk的bin目录下有一个wsimport.exe的工具,使 ...
- axis1客户端调用webservice的通用代码
1.axis1 作为web service 客户端时,调用web service 服务端的通用代码 String url = "http://www.webxml.com.cn/webser ...
随机推荐
- node.js学习6---第三方依赖(模块或者说是包)的导入 npm 以及 cnpm命令的使用
npm命令用于导入node.js的第三方包,相当于java中使用maven来导入第三方依赖: 1.npm init -y 命令:在命令窗口中执行后,会出现如下的json文件: 右边记录了安装的第三方包 ...
- 移动端click事件无反应或反应慢 touchend事件页面滑动时频繁触发
H5页面的点击事件click 无论在浏览器 iframe还是小程序里面 都会出现点击无反应或者反应慢的情况出现 所以决定用touchend事件来代替click 但是touchend事件触发比较灵敏 在 ...
- ORM-Model操作
django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成 ...
- 动态流程图关于jointJs的使用
这段时间由于业务需要,需要展现动态的流程图.具体实现效果如图所示: jointJS中的线条以及框都是依赖SVG进行的二次开发.建议初学者先学习svg里相关属性,便于在阅读jointJs的API或者de ...
- Unity ECS 初探
1.安装 安装两个包 2.初探 实例化 注:实例化的实体并不会在Hierarchy视图里面显示,可在EntityDebugger窗口里面显示,因此需要显示的话需要添加Rendermeshcompone ...
- day03 int bool str
1. 昨日内容回顾 1. while循环 语法: while 条件: 循环体 else: 语句块 执行过程:判断条件是否为真. 如果真, 执行循环体.然后再次判断条件... 直到条件为假循环停止 br ...
- CSS内嵌样式实现打字效果
<style> *{margin:0;padding:0;} @keyframes typing { from { width: 0; } } @keyframes blink-caret ...
- Spring动态获取已注入的对象的方法
1.根据类获取对象 @Autowired ApplicationContext context; GenericMapper<T,String> dao=(GenericMapper< ...
- DevOps 开源工具
1. 开发工具 版本控制&协作开发 版本控制系统 Git Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.开源中国 Git 代码托管平台:http:/ ...
- Strongly connected components
拓扑排列可以指明除了循环以外的所有指向,当反过来还有路可以走的话,说明有刚刚没算的循环路线,所以反过来能形成的所有树都是循环