当前位置: 代码迷 >> 综合 >> .netcore webapi post调用 webservice
  详细解决方案

.netcore webapi post调用 webservice

热度:33   发布时间:2024-01-12 20:45:53.0

myRequest.Proxy = null; 取消代理 framework 3.5以上默认有代理 

myRequest.Timeout = 60000; 延时

myRequest.ReadWriteTimeout= 120000; 读写延时

/// <summary>
        ///  http请求
        /// </summary>
        /// <param name="data">数据</param>
        /// <param name="uri">服务地址 http://localhost:1209/WebService.asmx/RunService</param>
        /// <param name="encoding">编码方式 System.Text.Encoding.UTF8</param>
        /// <param name="type">提交方式 POST</param>
        /// <param name="contentType">数据方式 application/x-www-form-urlencoded</param>
        /// <returns></returns>
        public static string HttpRequest(string data, string uri, Encoding encoding, string type, string contentType)
        {

            if (String.IsNullOrEmpty(type)) type = "POST";
            if (String.IsNullOrEmpty(contentType)) contentType = "application/json";
            //Web访问对象,构造请求的url地址
            string serviceUrl = uri;

            //构造http请求的对象
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
            HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
            myRequest.CachePolicy = noCachePolicy;
            myRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache";
            myRequest.Timeout = 60000;
            myRequest.Proxy = null;
            //转成网络流
            byte[] buf = encoding.GetBytes(data);
            //设置
            myRequest.Method = type;
            myRequest.ContentLength = buf.LongLength;
            myRequest.ContentType = contentType;
            using (Stream reqstream = myRequest.GetRequestStream())
            {
                reqstream.Write(buf, 0, (int)buf.Length);
            }

            HttpWebResponse resp = myRequest.GetResponse() as HttpWebResponse;
            System.IO.StreamReader reader = new System.IO.StreamReader(resp.GetResponseStream(), encoding);
            string message = reader.ReadToEnd();
            reader.Close();
            resp.Close();
            return message;

        }

  相关解决方案