C# 发送Http协议 模拟 Post Get请求

1.参数 paramsValue的格式 要和 Reques.ContentType一致,

如果 contentype  "application/x-www-form-urlencoded" 表单类型,那么  参数为   a=1&b=2 形式

如果 。。。         "application/json"  json 类型  那么参数就为  "{a:1,b:2}" 格式

2.可以添加自定义header,  add(key,value)

接受获取header   Request.Headers.Get(key)

public static string HttpGet(string url)
       { 
           string result=string.Empty;
           try
           {
               HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url);
               wbRequest.Method = "GET";
               HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse();
               using (Stream responseStream = wbResponse.GetResponseStream())
               {
                   using (StreamReader sReader = new StreamReader(responseStream))
                   {
                       result = sReader.ReadToEnd();
                   }
               }
           }
           catch (Exception ex)
           { 
           
           }
           return result;
       }
public static string HttpPost(string url, string paramData, Dictionary<string, string> headerDic = null)
       {
           string result = string.Empty;
           try
           {
               HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url);
               wbRequest.Method = "POST";
               wbRequest.ContentType = "application/x-www-form-urlencoded";
               wbRequest.ContentLength = Encoding.UTF8.GetByteCount(paramData);
               if (headerDic != null && headerDic.Count > 0)
               {
                   foreach (var item in headerDic)
                   {
                       wbRequest.Headers.Add(item.Key, item.Value);
                   }
               }
               using (Stream requestStream = wbRequest.GetRequestStream())
               {
                   using (StreamWriter swrite = new StreamWriter(requestStream))
                   {
                       swrite.Write(paramData);
                   }
               }
               HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse();
               using (Stream responseStream = wbResponse.GetResponseStream())
               {
                   using (StreamReader sread = new StreamReader(responseStream))
                   {
                       result = sread.ReadToEnd();
                   }
               }
           }
           catch (Exception ex)
           { }
         
           return result;
       }
/// <summary>
        /// 提交数据请求  方法一
        /// </summary>
        /// <param name="POSTURL">请求提交的地址 如:http://xxx.xxx.xxx/interface/TestPostRequest</param>
        /// <param name="PostData">提交的数据(字符串)</param>
        /// <returns></returns>
        public static string RequestData(string POSTURL, string PostData)
        {
            //发送请求的数据
            WebRequest myHttpWebRequest = WebRequest.Create(POSTURL);
            myHttpWebRequest.Method = "GET";
            UTF8Encoding encoding = new UTF8Encoding();
            byte[] byte1 = encoding.GetBytes(PostData);
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            myHttpWebRequest.ContentLength = byte1.Length;
            Stream newStream = myHttpWebRequest.GetRequestStream();
            newStream.Write(byte1, 0, byte1.Length);
            newStream.Close();

            //发送成功后接收返回的XML信息
            HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse();
            string lcHtml = string.Empty;
            Encoding enc = Encoding.GetEncoding("UTF-8");
            Stream stream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(stream, enc);
            lcHtml = streamReader.ReadToEnd();
            return lcHtml;
        }

猜你喜欢

转载自blog.csdn.net/ly8261861/article/details/81740467