HttpWebRequest和HttpWebResponse
2015-06-08 23:39
405 查看
HttpWebRequest
HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持
不要使用 HttpWebRequest 构造函数。使用 WebRequest.Create 方法初始化新的 HttpWebRequest 对象
HttpWebResponse
决不要直接创建 HttpWebResponse 类的实例。而应当使用通过调用 HttpWebRequest.GetResponse 所返回的实例。您必须调用 Stream.Close 方法或 HttpWebResponse.Close 方法来关闭响应并将连接释放出来供重用。不必同时调用 Stream.Close 和 HttpWebResponse.Close,但这样做不会导致错误
示例代码
参考文献:郑阿奇主编的《Visual C#网络编程》、MSDN。
HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持
不要使用 HttpWebRequest 构造函数。使用 WebRequest.Create 方法初始化新的 HttpWebRequest 对象
HttpWebResponse
决不要直接创建 HttpWebResponse 类的实例。而应当使用通过调用 HttpWebRequest.GetResponse 所返回的实例。您必须调用 Stream.Close 方法或 HttpWebResponse.Close 方法来关闭响应并将连接释放出来供重用。不必同时调用 Stream.Close 和 HttpWebResponse.Close,但这样做不会导致错误
示例代码
public string HttpRequest(string url, string xml) { string msg = string.Empty; byte[] bytes = Encoding.UTF8.GetBytes(xml); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.PreAuthenticate = true; request.AllowWriteStreamBuffering = true; request.SendChunked = true; request.ProtocolVersion = HttpVersion.Version11; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; request.Method = "POST"; request.ContentLength = bytes.Length; request.ContentType = "text/xml"; request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes("username:password"))); //身份凭证 CredentialCache myCredential = new CredentialCache(); myCredential.Add(new Uri(url), "Basic", new NetworkCredential("username", "password")); request.Credentials = myCredential; //发送数据 using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(bytes, 0, bytes.Length); } //返回响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { msg = String.Format("POST failed {0}", response.StatusCode); } else { Stream responseStream = response.GetResponseStream(); StreamReader sr = new StreamReader(responseStream,Encoding.GetEncoding("gbk")); msg = sr.ReadToEnd(); sr.Close(); response.Close(); } return msg; }
参考文献:郑阿奇主编的《Visual C#网络编程》、MSDN。
相关文章推荐
- 使用telnet发送HTTP请求
- 使用telnet发送HTTP请求
- XMLHttpRequest升级版
- HTTP错误码
- HTTP错误码
- 性能优化第四篇--移动网络优化
- 计算机网络(8)网络层
- asp.net使用httphandler打包多CSS或JS文件以加快页面加载速度
- TCP_Wrappers
- 网络攻防案例教程笔记---数据加密与破解
- [转载] TCP协议缺陷不完全记录
- heartbeat安装配置及httpd高可用简单示例
- 计算机网络技术基础知识
- android从零开始(五)读取网络图片
- 计算机网络学习(7)网络层
- HttpClient之Get请求和Post请求示例
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- 黑马程序员——网络编程总结(二)
- iOS开发网络数据之AFNetworking使用2.0和2.5
- 看《网络安全漏洞的罪与罚》有感