• c# 纯代码调用 webservice


    public static class RequestHelper
            {
                public class RequestResult
                {
                    public RequestResult(bool requestResult, string resultData)
                    {
                        this.Result = requestResult;
                        this.ResultData = resultData;
                    }
    
                    public bool Result { get; private set; }
                    public string ResultData { get; private set; }
                }
    
                public static RequestResult Request(string url, string method, string data, Dictionary<string, string> header, string contentType = "application/json;charset=utf-8")
                {
                    HttpWebRequest request = null;
                    if (url.ToLower().StartsWith("https"))
                    {
                        ServicePointManager.ServerCertificateValidationCallback =
                            new System.Net.Security.RemoteCertificateValidationCallback(delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
                            {
                                return true;
                            });
                        request = WebRequest.Create(url) as HttpWebRequest;
                        request.ProtocolVersion = HttpVersion.Version10;
                    }
                    else
                        request = WebRequest.Create(url) as HttpWebRequest;
    
                    request.Method = method;
                    request.AllowAutoRedirect = true;
                    request.Proxy = new WebProxy { UseDefaultCredentials = true };
                    request.ContentType = contentType;
                    foreach (var h in header)
                        request.Headers.Add(h.Key, h.Value);
    
                    try
                    {
                        if (data != null && method != "GET")
                        {
                            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
                            {
                                writer.Write(data);
                            }
                        }
    
                        var response = request.GetResponse() as HttpWebResponse;
                        var responseStream = response.GetResponseStream();
                        var reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
                        string result = reader.ReadToEnd();
                        return new RequestResult(true, result);
                    }
                    catch (Exception ex)
                    {
                        return new RequestResult(false, ex.Message);
                    }
                }
            }
    var serviceUrl = @"http://192.168.0.xxx:xxxx/webService/xxxx.asmx";
                var header = new Dictionary<string, string>();
                header.Add("SOAPAction", "http://tempuri.org/GetAuthorizationCode");
                var body =
                    "<?xml version="1.0" encoding="utf-8"?>"
                    + "<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:Body>"
                    + "      <GetAuthorizationCode xmlns="http://tempuri.org/">"
                    + "          <loginName>180001</loginName>"
                    + "          <token>6B17644986B630E9C284C07F4D412C89</token>"
                    + "      </GetAuthorizationCode>"
                    + "  </soap:Body>"
                    + "</soap:Envelope>";
    
                var result = RequestHelper.Request(serviceUrl, "POST", body, header, "text/xml;charset=utf-8");
                if (!result.Result)
                    return;
    
                var doc = new XmlDocument();
                var namespaceManager = new XmlNamespaceManager(doc.NameTable);
                namespaceManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
                namespaceManager.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
                namespaceManager.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
                namespaceManager.AddNamespace("mynamespace", "http://tempuri.org/");
                doc.LoadXml(result.ResultData);
                var resultNode = doc.SelectSingleNode(@"soap:Envelope/soap:Body/mynamespace:GetAuthorizationCodeResponse/mynamespace:GetAuthorizationCodeResult", namespaceManager);
                var resultFlag = bool.Parse(resultNode.InnerText);


    其中调用和解析的xml样式,请参照接口中格式中的内容。

  • 相关阅读:
    Hive UDF 用户自定义函数 编程及使用
    Hive 常用命令和语句
    Hive 配置显示表头和数据库信息
    Hive 安装配置
    Hadoop完全分布式集群环境搭建
    Java 文件切割工具类
    MongoDB 安装配置
    NodeJS 安装配置
    Java 截屏工具类
    Maven 配置本地依赖jar
  • 原文地址:https://www.cnblogs.com/nanfei/p/10538171.html
Copyright © 2020-2023  润新知