• [转]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>

  • 相关阅读:
    SQL批量更新
    使用PLSQL导入导出数据库
    Oracle 的Blob使用小结
    基于java的邮件服务器以及webmail的搭建
    Tomcat 系统架构与设计模式 【2】
    修改Oracle XE Listener 占用的1521、8080端口
    nls_lang pl/sql 设置编码
    oracle提高查询效率的解析
    Tomcat 系统架构与设计模式
    hql与sql的区别(转)
  • 原文地址:https://www.cnblogs.com/tiancai/p/9620189.html
Copyright © 2020-2023  润新知