C#通过Http发送Soap请求

xiaoxiao2021-02-28  106

/// <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><GetIPCountryAndLocalResponse xmlns="http://tempuri.org/"><GetIPCountryAndLocalResult>广东省电信</GetIPCountryAndLocalResult></GetIPCountryAndLocalResponse></soap:Body></soap:Envelope>

转载请注明原文地址: https://www.6miu.com/read-26664.html

最新回复(0)