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>

  • 相关阅读:
    开博了,将会定期更新博客
    C++实验二
    C++实验三
    c++第八章课后题
    c++第八章复数运算
    我的第一篇Window Live Writer日志
    Item 3: Prefer the is or as Operators to Casts(选择is或者as操作符而不是做强制类型转换)
    C# 中list的排序
    CodeSmith的应用
    using 关键字
  • 原文地址:https://www.cnblogs.com/Raywang80s/p/6862611.html
Copyright © 2011-2022 走看看