zoukankan      html  css  js  c++  java
  • [转]C#通过Http发送Soap请求

    /// <summary>
            /// 发送SOAP请求,并返回响应xml
            /// </summary>
            /// <param name="url">请求地址</param>
            /// <param name="datastr">SOAP请求信息</param>
            /// <returns>返回响应信息</returns>
            public static string GetSOAPReSource(string url, string datastr)
            {

                //发起请求
                Uri uri = new Uri(url);
                WebRequest webRequest = WebRequest.Create(uri);
                webRequest.ContentType = "text/xml; charset=utf-8";
                webRequest.Method = "POST";
                using (Stream requestStream = webRequest.GetRequestStream())
                {
                    byte[] paramBytes = Encoding.UTF8.GetBytes(datastr.ToString());
                    requestStream.Write(paramBytes, 0, paramBytes.Length);
                }

                //响应
                WebResponse webResponse = webRequest.GetResponse();
                using (StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8))
                {
                    string result = "";
                    return result=myStreamReader.ReadToEnd();
                }
            }

    示例:调用webservice查询IP地址信息

    webservice地址:http://www.wjg121.cn/Service/IPAddress.asmx?op=GetIPCountryAndLocal

          static void Main(string[] args)
            {

                 
                //构造soap请求信息
                StringBuilder soap = new StringBuilder();
                soap.Append("<?xml version="1.0" encoding="utf-8"?>");
                soap.Append("<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.Append("<soap:Body>");
                soap.Append("<GetIPCountryAndLocal xmlns="http://tempuri.org/">");
                soap.Append("<RequestIP>183.39.119.90</RequestIP>");
                soap.Append("</GetIPCountryAndLocal>");
                soap.Append("</soap:Body>");
                soap.Append("</soap:Envelope>");

                string url = "http://www.wjg121.cn/Service/IPAddress.asmx";
                Console.WriteLine(WebServiceUtility.GetSOAPReSource(url,soap.ToString()));           
                Console.ReadKey();

            }

    //返回结果:

    <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.
    xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
    " xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetIPCountryAndLocalR
    esponse xmlns="http://tempuri.org/"><GetIPCountryAndLocalResult>广东省电信</GetI
    PCountryAndLocalResult></GetIPCountryAndLocalResponse></soap:Body></soap:Envelop
    e>

  • 相关阅读:
    sqlplus时报Linux-x86_64 Error: 13: Permission denied
    thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 合并石子
  • 原文地址:https://www.cnblogs.com/Raywang80s/p/6862611.html
Copyright © 2011-2022 走看看