C#调用WebService(Soap)接口方法 您所在的位置:网站首页 soap擎天柱 C#调用WebService(Soap)接口方法

C#调用WebService(Soap)接口方法

2023-12-14 07:58| 来源: 网络整理| 查看: 265

首先了解两点知识:

1.什么是WebService

2.什么是soap

WebService:是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。

WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。 WebService=WSDL+SOAP+UDDI(webservice的注册)。

WebServices 提供一个建立分布式应用的平台。

Soap :是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。或者更简单地说:SOAP 是用于访问网络服务的协议,基于 XML。SOAP 是一种用于发送消息的格式。

Soap协议的Post方法

/// /// Soap协议Post方法 /// /// WebService地址 /// 传入Soap协议格式数据 /// public static string SendToReturn(Uri _uri, StringBuilder _str) { string _returnstr = ""; //发起请求 WebRequest webRequest = WebRequest.Create(_uri); webRequest.ContentType = "text/xml; "; webRequest.Method = "POST"; using (Stream requestStream = webRequest.GetRequestStream()) { byte[] paramBytes = Encoding.UTF8.GetBytes(_str.ToString()); requestStream.Write(paramBytes, 0, paramBytes.Length); } //响应 try { WebResponse webResponse = webRequest.GetResponse(); using (StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)) { _returnstr = myStreamReader.ReadToEnd(); } } catch (WebException ex) { _returnstr = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd(); } return _returnstr; }

Soap协议的Xml格式组装(根据每个人情况自行组装)

StringBuilder soap = new StringBuilder(); soap.Append(""); soap.Append(""); soap.Append(""); soap.Append(""); soap.Append(""); soap.Append(""); soap.AppendFormat("InsertOUTPT_CARRIER_TRACKING_PS_{0}{1}{2}", DateTime.Now.ToString("yyyyMMddHHmmss"), 1, "SYGD"); soap.AppendFormat("1 "); soap.Append(""); soap.Append(""); soap.Append(""); soap.AppendFormat("{0}", soapBill.BL_LOAD_NO == null ? "" : soapBill.BL_LOAD_NO); soap.AppendFormat("{0}", soapBill.BL_ORDER_NO == null ? "" : soapBill.BL_ORDER_NO); soap.AppendFormat("{0}", soapBill.CUSTOMER_ORDER_NO == null ? "" : soapBill.CUSTOMER_ORDER_NO); soap.AppendFormat("{0}", soapBill.STATUS == null ? "" : soapBill.STATUS); soap.AppendFormat("{0}", soapBill.TRACKING_TIME == null ? "" : soapBill.TRACKING_TIME); soap.AppendFormat("{0}", soapBill.STATUS_TIME == null ? "" : soapBill.STATUS_TIME); soap.AppendFormat("{0}", soapBill.POSITION == null ? "" : soapBill.POSITION); soap.AppendFormat("{0}", soapBill.VEHICLE_ID == null ? "" : soapBill.VEHICLE_ID); soap.AppendFormat("{0}", soapBill.DRIVER_NAME == null ? "" : soapBill.DRIVER_NAME); soap.AppendFormat("{0}", soapBill.SIGNER == null ? "" : soapBill.SIGNER); soap.AppendFormat("{0}", soapBill.VEHICLE_TYPE == null ? "" : soapBill.VEHICLE_TYPE); soap.AppendFormat("{0}", soapBill.NODE_DESCRIPTION == null ? "" : soapBill.NODE_DESCRIPTION); soap.AppendFormat("{0}", soapBill.NOTES == null ? "" : soapBill.NOTES); soap.AppendFormat("{0}", soapBill.QTY_EACH == null ? "" : soapBill.QTY_EACH); soap.AppendFormat("{0}", soapBill.GROSSWEIGHT == null ? "" : soapBill.GROSSWEIGHT); soap.AppendFormat("{0}", soapBill.CUBIC == null ? "" : soapBill.CUBIC); soap.AppendFormat("{0}", soapBill.UDF01 == null ? "" : soapBill.UDF01); soap.AppendFormat("{0}", soapBill.UDF02 == null ? "" : soapBill.UDF02); soap.AppendFormat("{0}", soapBill.UDF03 == null ? "" : soapBill.UDF03); soap.AppendFormat("{0}", soapBill.UDF04 == null ? "" : soapBill.UDF04); soap.AppendFormat("{0}", soapBill.UDF05 == null ? "" : soapBill.UDF05); soap.Append(""); soap.Append("]]>"); soap.Append(""); soap.Append(""); soap.Append("");

Soap协议的Post方法调用

//插入请求数据的日志 AddInterfaceLog("SendNodeReturnData", "请求数据:" + soap.ToString(), 1); //调用webService接口(soap) Uri uri = new Uri(reqUrl); string soapResult = SendToReturn(uri, soap); //插入响应结果的日志 AddInterfaceLog("SendNodeReturnData", "响应结果:" + soapResult, 1);

调用后结果

 

PS:

具体参考以下两篇博客:

https://www.jb51.net/article/130404.htm   

https://blog.csdn.net/sinat_29009169/article/details/103917166  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有