zoukankan      html  css  js  c++  java
  • C# Post方式传输报文,和处理响应

     1   public string DoPost(string url, string data)
     2         {
     3             HttpWebRequest req = GetWebRequest(url, "POST");
     4             byte[] postData = Encoding.UTF8.GetBytes(data);
     5             Stream reqStream = req.GetRequestStream();
     6             reqStream.Write(postData, 0, postData.Length);
     7             reqStream.Close();
     8             HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
     9             Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
    10             return GetResponseAsString(rsp, encoding);
    11         }
    12 
    13         public HttpWebRequest GetWebRequest(string url, string method)
    14         {
    15             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    16             req.ServicePoint.Expect100Continue = false;
    17             req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
    18             req.ContentType = "text/json";
    19             req.Method = method;
    20             req.KeepAlive = true;
    21             req.UserAgent = "mysoft";
    22             req.Timeout = 1000000;
    23             req.Proxy = null;
    24             return req;
    25         }
    26 
    27         public string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)
    28         {
    29             StringBuilder result = new StringBuilder();
    30             Stream stream = null;
    31             StreamReader reader = null;
    32             try
    33             {
    34                 // 以字符流的方式读取HTTP响应
    35                 stream = rsp.GetResponseStream();
    36                 reader = new StreamReader(stream, encoding);
    37                 // 每次读取不大于256个字符,并写入字符串
    38                 char[] buffer = new char[256];
    39                 int readBytes = 0;
    40                 while ((readBytes = reader.Read(buffer, 0, buffer.Length)) > 0)
    41                 {
    42                     result.Append(buffer, 0, readBytes);
    43                 }
    44             }
    45             finally
    46             {
    47                 // 释放资源
    48                 if (reader != null) reader.Close();
    49                 if (stream != null) stream.Close();
    50                 if (rsp != null) rsp.Close();
    51             }
    52 
    53             return result.ToString();
    54         }

    一个帮助类

    result = _httpHelper.Url(url).Content(msg).Post();

    using System.Net.Http;
    using System.Net.Http.Headers;
    
    namespace Common
    {
        public  class HttpHelper
       {
            private readonly HttpClient _httpClient;
            private string _url;
            private string _content;
     
           public HttpHelper()
           {
               _httpClient = new HttpClient();
               _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            }
            public HttpHelper Url(string url)
           {
               _url = url;
               return this;
           }
            public HttpHelper Content(string content)
            {
                _content = content;
                return this;
            }
            public HttpHelper HeaderKeyValue(string key,string value)
            {
                if (_httpClient.DefaultRequestHeaders.Contains(key))
                    _httpClient.DefaultRequestHeaders.Remove(key);
                _httpClient.DefaultRequestHeaders.Add(key, value);
                return this;
            }
            public string Post()
            {
                var content = new StringContent(_content);
                var response = _httpClient.PostAsync(_url,content).Result;
                return response.IsSuccessStatusCode ? response.Content.ReadAsStringAsync().Result : null;
            }
            public string Get()
            {
                var response = _httpClient.GetAsync(_url).Result;
                return response.IsSuccessStatusCode ? response.Content.ReadAsStringAsync().Result : null;
            }
    
        }
    }
  • 相关阅读:
    数据库里面的表空间,用户在实际开发中的使用
    并行编程的模型机制
    临时表在开发中的使用

    HIbernate编程模型
    网络数据如何可靠传输
    Spring Security编程模型
    java的缓存框架
    sort函数使用自定义数据排序使用
    FailOver的机制
  • 原文地址:https://www.cnblogs.com/longling2344/p/5158131.html
Copyright © 2011-2022 走看看