博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Http 请求
阅读量:4543 次
发布时间:2019-06-08

本文共 6276 字,大约阅读时间需要 20 分钟。

1 public static string HttpGet(string url) 2         { 3             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 4             request.Method = "GET";//设置请求的方法 5             request.Accept = "*/*";//设置Accept标头的值 6             string responseStr = ""; 7             using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())//获取响应 8             { 9                 using (StreamReader reader =10         new StreamReader(response.GetResponseStream(), Encoding.UTF8))11                 {12                     responseStr = reader.ReadToEnd();13                 }14             }15             return responseStr;16         }

 

1  public static string HttpPost(string url, string  data) 2         { 3             //当请求为https时,验证服务器证书 4             ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((a, b, c, d) => true); 5           var req= (HttpWebRequest)WebRequest.Create(url); 6             req.Method = "POST"; 7             req.ContentType = "application/x-www-form-urlencoded"; 8             req.Accept = "*/*"; 9             req.Timeout = 15000;10             req.AllowAutoRedirect = false;11             string responseStr = "";12             using (var writer = new StreamWriter(req.GetRequestStream()))13             {14                writer.Write(data);15             }16             using (var  res = (HttpWebResponse)req.GetResponse())17             {18                 using (var reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8))19                 {20                     responseStr = reader.ReadToEnd();//获取响应21                 }22             }23             return responseStr;24         }

 

 

 

1   public static string HttpPost(string url, string stream) 2         { 3             //当请求为https时,验证服务器证书 4             ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback((a, b, c, d) => true); 5             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 6             request.Method = "POST"; 7             request.ContentType = "application/x-www-form-urlencoded"; 8             request.Accept = "*/*"; 9             request.Timeout = 15000;10             request.AllowAutoRedirect = false;11             string responseStr = "";12             using (var reqstream = request.GetRequestStream())13             {14                 stream.Position = 0L;15                 stream.CopyTo(reqstream);16             }17             using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())18             {19                 using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))20                 {21                     responseStr = reader.ReadToEnd();//获取响应22                 }23             }24             return responseStr;25         }

 

1 public static string HttpPostForm(string url, List
form) 2 { 3 //分割字符串 4 var boundary = "----" + DateTime.Now.Ticks.ToString("x"); 5 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 6 request.Method = "POST"; 7 ServicePointManager.ServerCertificateValidationCallback = 8 new RemoteCertificateValidationCallback((a, b, c, d) => true); 9 request.ContentType = "multipart/form-data; boundary=" + boundary;10 MemoryStream stream = new MemoryStream();11 #region 将非文件表单写入内存流12 foreach (var entity in form.Where(f => f.IsFile == false))13 {14 var temp = new StringBuilder();15 temp.AppendFormat("\r\n--{0}", boundary);16 temp.Append("\r\nContent-Disposition: form-data;");17 temp.AppendFormat("name=\"{0}\"", entity.Name);18 temp.Append("\r\n\r\n");19 temp.Append(entity.Value);20 byte[] b = Encoding.UTF8.GetBytes(temp.ToString());21 stream.Write(b, 0, b.Length);22 }23 #endregion24 #region 将文件表单写入内存流25 foreach (var entity in form.Where(f => f.IsFile == true))26 {27 byte[] filedata = null;28 var filename = Path.GetFileName(entity.Value);29 //表示是网络资源30 if (entity.Value.Contains("http"))31 {32 //处理网络文件33 using (var client = new WebClient())34 {35 filedata = client.DownloadData(entity.Value);36 }37 }38 else39 {40 //处理物理路径文件41 using (FileStream file = new FileStream(entity.Value,42 FileMode.Open, FileAccess.Read))43 {44 filedata = new byte[file.Length];45 file.Read(filedata, 0, (int)file.Length);46 }47 }48 var temp = string.Format("\r\n--{0}\r\nContent-Disposition: " +49 "form-data; name=\"{1}\"; filename=\"{2}\"\r\n\r\n",50 boundary, entity.Name, filename);51 byte[] b = Encoding.UTF8.GetBytes(temp);52 stream.Write(b, 0, b.Length);53 stream.Write(filedata, 0, filedata.Length);54 }55 #endregion56 //结束标记57 byte[] foot_data = Encoding.UTF8.GetBytes("\r\n--" + boundary +58 "--\r\n");59 stream.Write(foot_data, 0, foot_data.Length);60 Stream reqStream = request.GetRequestStream();61 stream.Position = 0L;62 //将Form表单生成流写入请求流63 stream.CopyTo(reqStream);64 stream.Close();65 reqStream.Close();66 using (HttpWebResponse response = (HttpWebResponse)request.67 GetResponse())68 {69 using (StreamReader reader =70 new StreamReader(response.GetResponseStream(), Encoding.UTF8))71 {72 return reader.ReadToEnd();//获取响应73 }74 }75 }

 

转载于:https://www.cnblogs.com/laopo/p/5248834.html

你可能感兴趣的文章
04 shell编程之循环语句
查看>>
mysql性能优化-慢查询分析、优化索引和配置
查看>>
Dubbo和Spring Cloud微服务架构对比
查看>>
发现对各类项目有用的不同JavaScript的Web UI
查看>>
HTML5 Shiv – 让该死的IE系列支持HTML5吧
查看>>
JSON 之JAVA 解析
查看>>
【done】大众点评
查看>>
18.索引
查看>>
Software Testing Homework1: An error in my past program
查看>>
还原bidplant
查看>>
servlet+jsp修改商品信息
查看>>
Qt禁止调整窗口的大小
查看>>
javascript DOM——初学2
查看>>
eclise linux c mysql
查看>>
Js跳出循环
查看>>
SQL Server truncate与delete的区别
查看>>
JavaScript表单验证
查看>>
MySql表结构修改详解
查看>>
errno多线程安全(转载)
查看>>
使用maven和svn进行版本控制
查看>>