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>

  • 相关阅读:
    python第三天
    python第二天
    python第一天
    Linux之VIM常用功能
    Linux输入输出管理
    Linux文件操作及管理
    Linux虚拟机基本操作
    JAVA堆,栈的区别,用AarrayList、LinkedList自定义栈
    mysql优化limit
    MySql五大引擎的区别以及优劣之分
  • 原文地址:https://www.cnblogs.com/tiancai/p/9620189.html
Copyright © 2011-2022 走看看