string url = "http://b2b.hc360.com/rewrite-url/www/dl.html";
string indata = "LoginID=mytestcs&Passwd=aabbccdd";
string outdata="";
CookieContainer myCookieContainer=new CookieContainer();
//新建一个CookieContainer来存放Cookie集合
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url);
//新建一个HttpWebRequest
myHttpWebRequest.ContentType="application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength=indata.Length;
myHttpWebRequest.Method="POST";
myHttpWebRequest.CookieContainer=myCookieContainer;
//设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer
Stream myRequestStream=myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(indata);
//把数据写入HttpWebRequest的Request流
myStreamWriter.Close();
myRequestStream.Close();
//关闭打开对象
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
//新建一个HttpWebResponse
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
//获取一个包含url的Cookie集合的CookieCollection
Stream myResponseStream=myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312"));
outdata=myStreamReader.ReadToEnd();
//把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();
Console.WriteLine(outdata);
//显示"登录"
//拿到了Cookie,再进行请求就能直接读取到登录后的内容了
myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer=myCookieContainer;//*
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
myResponseStream=myHttpWebResponse.GetResponseStream();
myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312"));
outdata=myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
Console.WriteLine(outdata);
分享到:
相关推荐
HttpWebRequest: 命名空间: System.Net,这是.NET创建者最初开发用于使用HTTP请求的标准类。使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts, cookies, headers, protocols。另一个好处...
### HttpWebRequest:深入理解与应用 #### 知识点一:HttpWebRequest的初始化与使用 在.NET框架中,`HttpWebRequest`是`WebRequest`类的一个具体实现,专门用于处理HTTP和HTTPS请求。为了正确地使用`...
### C# 使用 HttpWebRequest 调用 WebService 的方法详解 在C#开发中,有时候我们需要与WebService进行交互,获取或发送数据。本篇文章将详细介绍如何利用`HttpWebRequest`类来实现这一功能,并通过示例代码帮助...
本教程将深入探讨如何使用`HttpWebRequest`类以XML UTF-8格式发送数据到指定地址,并接收返回值。首先,我们需要理解`HttpWebRequest`类在.NET框架中的作用。 `HttpWebRequest`是System.Net命名空间中的一个类,它...
本文将详细介绍如何使用C#中的`HttpWebRequest`来发送POST请求,并实现网站的自动登录。 #### 发送POST请求的基本步骤 1. **创建HttpRequest对象**:首先需要创建一个`HttpWebRequest`对象,并设置其URL地址。 2. ...
### 使用HttpWebRequest实现大文件上传 #### 概述 在Windows Forms (WinForm) 开发中,文件上传是一项常见的需求。传统的做法是利用`WebClient`类进行文件上传操作。然而,这种方式在处理大型文件时存在明显的局限...
### HttpWebRequest详解 #### 一、引言与背景 在移动应用开发中,网络连接的稳定性和设备的离线操作能力至关重要。一个优秀的应用程序应当具备在网络连接不稳定或完全失去连接的情况下依然能为用户提供有价值的...
### 使用HttpWebRequest实现大文件上传 #### 概述 在Windows Forms (WinForm) 开发过程中,文件上传是一项常见的需求。传统的做法是利用`WebClient`类进行文件传输,这种方式简单且易于实现。然而,当涉及到较大...
本篇将详细探讨如何基于`HttpWebRequest`和多线程来实现一个高效的文件下载类。 首先,`HttpWebRequest`是.NET Framework提供的一种用于HTTP通信的类,它允许我们发起HTTP请求并接收响应。这个类包含了设置请求头、...
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri); webrequest.CookieContainer = cookies; webrequest.ContentType = "multipart/form-data; boundary=" + boundary; webrequest.Method = ...
它会从待下载集合中取出第一个URL,将其移动到已下载集合,并创建一个HttpWebRequest对象,设置请求方法、接受类型、用户代理等属性,然后使用异步请求方法开始请求。 5. **异步请求处理**:在RequestState类中,...
这个插件可能是对系统默认的HttpWebRequest类进行了优化或者提供了一种绕过某些错误的方法,例如忽视SSL/TLS证书错误,或者改进了与特定服务器的通信协议。"无限制版本https"可能意味着这个插件允许用户不受限制地...
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; // 设置请求方式为GET request.Method = "GET"; // 设置默认的用户代理信息 request.UserAgent = DefaultUserAgent; if (!string....
本知识点将深入探讨如何在WinForm环境下利用HttpWebRequest类实现文件上传,并且展示上传进度,这对于创建Web客户端应用非常有用。由于提供的资源是一个单独的类文件,而非完整的项目,我们将专注于讲解关键代码片段...
在这个特定的场景中,我们看到一个使用C#编程语言构建的自动更新系统,利用了`HttpWebRequest`类来处理网络请求。以下是关于这个系统的详细知识讲解: 1. **C#语言**:C#是一种面向对象的编程语言,由微软公司开发...
App.xaml.cs通常包含应用程序的生命周期管理和全局逻辑,而MainPage.xaml.cs是主页面的代码-behind,这里可能是实现WebClient或HttpWebRequest的地方。httptest1.csproj是项目的项目文件,包含了项目设置和引用信息...
本知识点主要探讨如何使用C#中的HttpWebRequest类实现断点续传和下载进度的展示。 首先,断点续传是一种允许用户在中断网络连接后从上次中断的位置继续下载的技术,极大地提高了用户体验,特别是对于大文件下载。在...
1. **创建HttpWebRequest对象**:首先,我们需要创建一个`HttpWebRequest`实例,指定目标URL。这可以通过`WebRequest.Create()`静态方法完成,如下所示: ```csharp string url = "http://www.example.com"; ...
在本项目中,我们使用HttpWebRequest发送GET请求到指定的网页,获取网页的源代码,然后通过正则表达式从中提取图片URL。一旦获取到URL,HttpWebRequest可以再次发起请求,这次是下载图片,将其保存到本地。 具体...
### .NET HttpWebRequest应用知识点详解 #### 一、概述 在.NET框架中,`HttpWebRequest`是用于构建HTTP请求的标准工具之一。它提供了强大的功能来发送GET和POST请求,并能够处理复杂的HTTP交互,例如文件上传等操作...