博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 调用Java的webService
阅读量:6858 次
发布时间:2019-06-26

本文共 2805 字,大约阅读时间需要 9 分钟。

public class SoapWebService

{
/// <summary>
/// webService 地址
/// </summary>
private string url = "";
public SoapWebService()
{
this.url =ReadPrivateProfile("WEBSERURL", "Url", AppDomain.CurrentDomain.BaseDirectory+@"Bin\MobilePayment.ini");
}

public string QueryPostWebService(string inputData)

{
string methodName = "hosService";
string InText =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+" <soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://services.freshpower.com.cn\"> "
+ " <soapenv:Header/> "
+ " <soapenv:Body> "
+ " <ser:hosService soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"> "
+ " <data xsi:type=\"soapenc:string\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">" + inputData + "</data>"
+ " </ser:hosService>"
+ " </soapenv:Body>"
+ " </soapenv:Envelope> ";

string url = this.url;
return GetSOAPReSource(url, InText, methodName);
}

private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

{ // 总是接受
return true;
}
private string GetSOAPReSource(string url, string datastr, string methodname)
{
try
{
//request
Uri uri = new Uri(url);
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);//验证服务器证书回调自动验证
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
webRequest.Method = "POST";
webRequest.Accept = @"gzip,deflate";
webRequest.ContentType = @"application/soap+xml;charset=UTF-8";
webRequest.UserAgent = @"Apache-HttpClient/4.1.1 (java 1.5)";
webRequest.Credentials = CredentialCache.DefaultCredentials;
webRequest.Timeout = 10000;
webRequest.Headers.Add("soapaction", methodname);//axis框架生成的方法,必须添加一个soapaction的头关键字

using (Stream requestStream = webRequest.GetRequestStream())

{
byte[] paramBytes = Encoding.UTF8.GetBytes(datastr);
requestStream.Write(paramBytes, 0, paramBytes.Length);
}
//response
System.Net.WebResponse webResponse = webRequest.GetResponse();
XmlDocument doc = ReadXmlResponse(webResponse);
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
XmlNode node = doc.SelectSingleNode("//soap:Body/*/*", mgr);

return node.InnerText;
}
catch (Exception ex)
{
Log.Error("", ex.Message+"获取WebService异常");
throw ex;
}
}

private static XmlDocument ReadXmlResponse(WebResponse response)

{
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
String retXml = sr.ReadToEnd();
sr.Close();
XmlDocument doc = new XmlDocument();
doc.LoadXml(retXml);
return doc;
}
}

转载于:https://www.cnblogs.com/tanhu/p/9647228.html

你可能感兴趣的文章
标准交互及UED、埋点及锚应用、外部调用原则。请教一下哪位大佬知道这三个的应用?求助...
查看>>
浅入深谈:一道Python面试题,让我明白了殊途同归,却开始怀疑自己
查看>>
内存时序对应的4个参数你们知道吗?ICMAX一文让你看懂
查看>>
我的U盘故事2
查看>>
《窃听风暴》影评
查看>>
linux下磁盘分区(初级篇)
查看>>
流媒体开发之--HLS--M3U8解析(2): HLS草案
查看>>
mysql大小写规则校验
查看>>
LINUX下find命令小记
查看>>
gulp es5语法转换及js/css/html压缩过程
查看>>
mapreduce框架的工作原理图
查看>>
我的友情链接
查看>>
马拉松训练讲座记录
查看>>
对《windowsXP网桥设置》一文的看法
查看>>
004-Python内置数据结构-七种数据结构一览
查看>>
分享30套免费的高质量网页按钮素材
查看>>
python第三方类库安装遇到error: Unable to find vcvarsall.bat
查看>>
我的友情链接
查看>>
CentOS7 防火墙firewall开放3306端口(顺带科普firewall命令)
查看>>
2017年6月6日 笔记
查看>>