第一:得到登陆的页面
用Get方法去测试。查看以下结果:
1. 是否得到预期的页面? 指一些数据, 比如从IE上能显示的HTML Body这类东东
2. 是否得到Sessions cookie?
一般登陆进去之后, 才会有这样的Sessions Cookie, 记得上一讲中的Http Response Header吗, 里面的Set Cookies, 可能就包含Sessions Cookie。如果此时没有Set Cookies肯定说明此时Session 没有建立。 说明你还需要做一步工作,就是"建立Sessions" 等下会讲到。
(我引申一下, 即使存在Set Cookie这样的字段, 一定保证里面设置的就是Session吗? 也不一定, 保险的做法是, 按照浏览器的习惯, 从主页, 再到登陆页面,主页的目的只是为了获取必要的Cookie 不要一步登天, 当然, 我们可以测试一下先, 免得做不必要的登陆主页,获取Cookie的操作)
如果, 上面的set cookie你也有了, 请求的URL也确认无误, 但死活就是得不到预期的登陆界面。很可能就是对方有个字段没有设置:User-Agent, 这个是指明你采用了哪个客户端像服务器发送请求, 比如常用的有IE, FF, Chrome,设置主流的流浪器就成!
第二: 建立Session. 这是在第一步失败的情况下需要的工作。通常的情况是, 从主页去Get一把, 从而得到Cookie。 下次Login请求的时候,将这些Cookie带进去。搞定...
HTTPClient提供了一套自动机制帮我们发送Cookie,Cookie Store, 把Response中的Cookie放置其中,并在发送的时候,帮我们发过去(如果没有发送过去, 检查Cookie Store是否为同一个)。
如果依然没有发送过去, 这个时候就要检测Cookie Scope, 比如:
A cookie for host "jakarta.apache.org" will not be sent to host "tomcat.apache.org". A cookie for domain ".apache.org" will be sent to both
注意,BT的来了:
A cookie for host "apache.org", without the leading dot, will not be sent to "jakarta.apache.org".
如果还不行...崩溃... 先别看了, 以后再去这里寻求帮助好了
第三: 分析表单。 这个我觉得没有必要, 我分析的方式是通过浏览器来的。 不想搞那么复杂。 通过配置文件去灵活转化,何必搞表单这么复杂的解析工作?
OK, 我觉得我们可以按照Browser的习惯处理HttpClient的应用:
1. 得到必要的Cookie包括Session id, 这个时候,我们还是用用主页登陆比较好。
此时如果主页没有可用的信息, 则我们只需要处理Response中的Cookie字段就好了。
2. 找到访问的路径。 设置必要的参数对, 和必要的url(包括表单项目)
分享到:
相关推荐
### HttpClient 4.0中文教程知识点总结 #### 一、HttpClient概述 **1.1 执行请求** - **HTTP请求**: HTTP请求包含了方法名称(GET、POST等)、URL以及必要的请求头信息。HttpClient允许开发者创建并发送这些请求...
示例代码展示了一个简单的 GET 请求的创建和执行流程: ```java HttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet("http://localhost/"); HttpResponse response = httpclient....
三、使用流程 1. 创建HttpClient实例,可以设置连接池、超时时间等参数。 2. 构建HttpHost对象,指定请求的目标服务器。 3. 使用HttpGet或HttpPost等创建请求对象,设置请求URL、请求头和请求体。 4. 将请求对象执行...
三、HttpClient的高级特性 1. **Cookie管理**:HttpClient支持Cookie管理,可以自动处理服务器返回的Cookie,保持会话状态。 2. **认证机制**:HttpClient提供了多种认证策略,如Basic认证、Digest认证等,可以...
在IT行业中,CAS(Central Authentication Service)是一种广泛使用的开源单点登录(Single Sign-On, SSO...通过这个过程,我们可以将CAS 4.0的功能扩展到更广泛的非Web应用场景中,提供更加灵活和安全的认证解决方案。
面试宝典-v4.0是一本集合了多种技术知识点的面试准备材料,旨在帮助求职者在面试过程中更好地展现自己的专业技能和理解能力。以下是从文档中提取的知识点,它们涵盖了多个重要的IT技术领域。 **Java基础** - ...
### 开始使用 Xamarin.Android 开发 Android 应用 #### Xamarin.Android 概述 Xamarin.Android 是一个基于 .NET 的框架,允许开发者使用 C# 语言和 .NET Framework 构建高性能、原生的 Android 应用。它为开发者...
最后一个,也是最关键的一个特性是,HttpClient支持异步请求处理,这在处理网络请求时是至关重要的,异步操作不会阻塞主线程,有利于提高应用程序的响应性和性能。 在.NET Framework中,HttpClient被定义在***....
总结来说,这个压缩包提供了三种不同的C#方法来获取网页源码,涵盖了从高级抽象的`HttpClient`到较低级别的`WebRequest/WebResponse`接口。这些技术在进行网页抓取、自动化测试、数据分析等领域都有广泛的应用。通过...
7. **异步编程**:在.NET 4.0中,可以使用async/await关键字来实现异步调用API,提高应用的响应速度。 8. **缓存策略**:为了提高性能,可以考虑对某些不经常变化但请求频繁的数据进行缓存,如用户信息。 9. **...
描述中提到"asp.net4.0",这是.NET Framework的一个版本,它包含许多改进和新特性,如ASP.NET MVC、Entity Framework等,提高了开发效率和应用程序性能。同时,"Win7系统的朋友,记得用管理员身份打开"这一提示可能...
【Asp.net网站天气预报实例】是一个基于ASP.NET 4.0技术开发的应用,它能够为内网用户提供实时的在线天气信息,即使在无法访问外部网络的环境下也能正常运作。这个实例展示了如何利用Web技术来获取和展示天气数据,...
首先,我们需要了解网络爬虫的基本工作流程: 1. 发起请求:网络爬虫首先向目标网站发送HTTP或HTTPS请求,获取网页的HTML或其他格式的响应。 2. 解析HTML:收到响应后,爬虫解析HTML内容,寻找需要的数据。这通常...
9. **API集成**:可能需要与物流、评价系统或其他第三方服务API进行集成,ASP.NET提供HttpClient类方便进行HTTP请求。 10. **安全性**:包括防止SQL注入、跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等,ASP.NET...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及游戏开发等领域占据着重要地位。对于求职者来说,掌握C#的相关知识并能在面试中流利应对是至关重要的。以下是对"个人系统截图"这个...
HttpClient提供了异步操作,适合于UWP应用的多线程环境。例如,可以使用`PostAsync`或`GetAsync`方法发送HTTP请求,并通过`ReadAsStringAsync`读取响应。 ```csharp using System.Net.Http; using System.Threading...
Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行参数,选项,选项组,强制选项等的简单API. Codec Codec 包含一些通用的编码解码算法。包括一些语音编码器, Hex, Base64, 以及URL ...
GroupCommentr,这款开源的桌面应用程序,专为摄影爱好者设计,旨在简化用户在Flickr上管理照片并参与奖励组的操作流程。通过GroupCommentr,你可以方便地将你的照片上传到多个Flickr的奖励组,同时还能对泳池中的...
在C# 4.0或.NET 4.5框架下,开发者可以使用HttpWebRequest或HttpClient类来构造并发送POST请求。这些类提供了方便的方法来设置请求头、请求体以及处理响应。 3. **ASP.NET应用**: 对于Web应用程序,可以使用ASP...
Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...