首页 > 编程 > C# > 正文

实例详解C#实现http不同方法的请求

2020-01-24 00:17:12
字体:
来源:转载
供稿:网友

1、不带参数的POST请求

public static string Post(string url) {   string result = "";   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);   req.Method = "POST";   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();   Stream stream = resp.GetResponseStream();   //获取内容   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))   {     result = reader.ReadToEnd();   }   return result; } 

2、带参数的POST请求

public static string Post(string url,Dictionary<string,string> dic) {   string result = "";   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);   req.Method = "POST";   req.ContentType = "application/x-www-form-urlencoded";   #region 添加Post 参数   StringBuilder builder = new StringBuilder();   int i = 0;   foreach (var item in dic)   {     if (i > 0)       builder.Append("&");     builder.AppendFormat("{0}={1}", item.Key, item.Value);     i++;   }   byte[] data = Encoding.UTF8.GetBytes(builder.ToString());   req.ContentLength = data.Length;   using (Stream reqStream = req.GetRequestStream())   {     reqStream.Write(data, 0, data.Length);     reqStream.Close();   }   #endregion   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();   Stream stream = resp.GetResponseStream();   //获取响应内容   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))   {     result = reader.ReadToEnd();   }   return result; } 

3、不带参数的GET请求

public static string Get(string url) {   string result = "";   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();   Stream stream = resp.GetResponseStream();   try   {     //获取内容     using (StreamReader reader = new StreamReader(stream))     {       result = reader.ReadToEnd();     }   }   finally   {     stream.Close();   }   return result; } 

4、带参数的GET请求

public static string Get(string url, Dictionary<string, string> dic) {   string result = "";   StringBuilder builder = new StringBuilder();   builder.Append(url);   if (dic.Count > 0)   {     builder.Append("?");     int i = 0;     foreach (var item in dic)     {       if (i > 0)         builder.Append("&");       builder.AppendFormat("{0}={1}", item.Key, item.Value);       i++;     }   }   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());   //添加参数   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();   Stream stream = resp.GetResponseStream();   try   {     //获取内容     using (StreamReader reader = new StreamReader(stream))     {       result = reader.ReadToEnd();     }   }   finally   {     stream.Close();   }   return result; } 

5、自定义HTTP请求头

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Headers["Accept-Language"] = "zh-CN,zh;q=0.8"; req.Referer = "https://www.baidu.com/"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); string result = ""; //注意,此处使用的编码是:gb2312 //using (StreamReader reader = new StreamReader(stream, Encoding.Default)) using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("gb2312"))) {   result = reader.ReadToEnd(); } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表