HttpWebRequest类与HttpRequest类的区别
HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息。
HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等。它封装了几乎HTTP请求报文里需要用到的东西,以致于能够能够发送任意的HTTP请求并获得服务器响应(Response)信息。采集信息常用到这个类
1 private ApiResultModel GetDataByProductIdInApi(int ProductID) 2 { 3 ApiResultModel model = null; 4 string url = "http://localhost:9001/West/ProductDZ/InfoPreView/" + ProductID; 5 //HttpWebRequest实力需要使用Create创建,然后设置一些参数 6 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 7 request.Method = "Get"; 8 request.ContentType = "application/json"; 9 //需要注意的是因为是异端请求所以需要trycatch释放异常及处理 10 try 11 { 12 WebResponse response = request.GetResponse() 13 //流对象需要手工释放对象 14 using (Stream stream = response.GetResponseStream()) 15 { 16 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) 17 { 18 model = new ApiResultModel(); 19 model = JsonConvert.DeserializeObject<ApiResultModel>(reader.ReadToEnd()); 20 } 21 } 22 23 return model; 24 } 25 catch (Exception) 26 { 27 request.Abort(); 28 } 29 finally 30 { 31 request.Abort(); 32 } 33 return null; 34 }
内部使用了Newton.js是解析json对象,需要创建与服务器想通的model类
HttpWebRequest功能比较强大,也可以实现post提交数据及上传or下载数据
post操作可参考:http://www.cnblogs.com/kissdodog/archive/2013/04/06/3002779.html