WebRequest
2015-07-08 11:53
441 查看
<>
// 待请求的地址 string url = "http://www.cnblogs.com"; // 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定, // 可以用于各种请求,例如:Http, Ftp 等等。 // HttpWebRequest 是 WebRequest 的派生类,专门用于 Http System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(url) as System.Net.HttpWebRequest; // 请求的方式通过 Method 属性设置 ,默认为 GET // 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。 request.Method = "POST"; // 还可以在请求中附带 Cookie // 但是,必须首先创建 Cookie 容器 request.CookieContainer = new System.Net.CookieContainer(); System.Net.Cookie requestCookie = new System.Net.Cookie("Request", "RequestValue","/", "localhost"); request.CookieContainer.Add(requestCookie); Console.WriteLine("请输入请求参数:"); // 输入 POST 的数据. string inputData = Console.ReadLine(); // 拼接成请求参数串,并进行编码,成为字节 string postData = "firstone=" + inputData; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(postData); // 设置请求的参数形式 request.ContentType = "application/x-www-form-urlencoded"; // 设置请求参数的长度. request.ContentLength = byte1.Length; // 取得发向服务器的流 System.IO.Stream newStream = request.GetRequestStream(); // 使用 POST 方法请求的时候,实际的参数通过请求的 Body 部分以流的形式传送 newStream.Write(byte1, 0, byte1.Length); // 完成后,关闭请求流. newStream.Close(); // GetResponse 方法才真的发送请求,等待服务器返回 System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); // 首先得到回应的头部,可以知道返回内容的长度或者类型 Console.WriteLine("Content length is {0}", response.ContentLength); Console.WriteLine("Content type is {0}", response.ContentType); // 回应的 Cookie 在 Cookie 容器中 foreach (System.Net.Cookie cookie in response.Cookies) { Console.WriteLine("Name: {0}, Value: {1}", cookie.Name, cookie.Value); } Console.WriteLine(); // 然后可以得到以流的形式表示的回应内容 System.IO.Stream receiveStream = response.GetResponseStream(); // 还可以将字节流包装为高级的字符流,以便于读取文本内容 // 需要注意编码 System.IO.StreamReader readStream = new System.IO.StreamReader(receiveStream, Encoding.UTF8); Console.WriteLine("Response stream received."); Console.WriteLine(readStream.ReadToEnd()); // 完成后要关闭字符流,字符流底层的字节流将会自动关闭 response.Close(); readStream.Close();
相关文章推荐
- Android 中数据库查询方法 query() 中的参数
- 分享一个很屌的eazyui二开demo
- UIPickerView用法(左右比例,整体大小,字体大小)
- StoreBoard使用UITabbarController设置tabbarItem的selectedImage问题
- Iphone开发-NSdata 与 NSString,Byte数组,UIImage 的相互转换
- 关于如何隐藏UItableview多余的分割线
- UI设计学习路径(一个)—好酒也怕巷子深
- 判断StringBuilder是否为空
- KMP & hdu 1711 Number Sequence
- 5.建造者模式(Builder Pattern)
- ios 手势UI控件事件冲突
- UUID 、GUID、COMB 的区别与联系
- php imagecreatetruecolor输出字符符或验证码
- Xcode unable to dequeue a cell with identifier
- miui6和lbe 问题
- LeetCode60:Permutation Sequence
- ORA-00838: Specified value of MEMORY_TARGET is too small
- easyui datagrid checkbox单选时表头的checkbox不起作用,将其隐藏
- Mac 下安装MySQL和GUI管理工具
- Serializable:serialVersionUID