实现用程序代码来实现某个网站的模拟登录,本文介绍使用httpclient完成这个工作。获得登录后的Session的演示代码如下:
package cn.xiyang.base;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
/**
* 演示登录
* @author xiyang
*
*/
public class Demo3 {
public static void main(String[] args) throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
//设置登录参数
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("[user_label]", "sdlgxxy"));
formparams.add(new BasicNameValuePair("[pwd_label]", "*****"));
UrlEncodedFormEntity entity1 = new UrlEncodedFormEntity(formparams, "UTF-8");
//新建Http post请求
HttpPost httppost = new HttpPost("http://*****/login");
httppost.setEntity(entity1);
//处理请求,得到响应
HttpResponse response = httpclient.execute(httppost);
String set_cookie = response.getFirstHeader("Set-Cookie").getValue();
//打印Cookie值
System.out.println(set_cookie.substring(0,set_cookie.indexOf(";")));
//打印返回的结果
HttpEntity entity = response.getEntity();
StringBuilder result = new StringBuilder();
if (entity != null) {
InputStream instream = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(instream));
String temp = "";
while ((temp = br.readLine()) != null) {
String str = new String(temp.getBytes(), "utf-8");
result.append(str);
}
}
System.out.println(result);
}
}
获得Session之后,把该值保存下来。然后再访问其他受保护对象时设置头信息的Cookie字段就好了,代码片段如下
HttpClient httpclient = new DefaultHttpClient();
// 根据获得的Cookie值,设置头信息,然后发送请求,获得内容
HttpGet httpget = new HttpGet("http://***/showsource?solution_id=7263065");
httpget.setHeader("Cookie", "JSESSIONID=817CF84802016AF09E3DFFE59532FD02");
HttpResponse response = httpclient.execute(httpget);
这样就可以获得该网页的内容。所需的jar包可在附件中下载
分享到:
相关推荐
以下是一个简单的使用HttpClient 4登录博客网站的步骤: 1. **创建HttpClient实例**:首先,我们需要创建一个`CloseableHttpClient`对象,这是HttpClient的主要入口点。我们可以使用`HttpClientBuilder`来构建它,...
在这个场景下,我们关注的是如何使用`HttpClient`进行模拟登录。 模拟登录通常是开发自动化测试、爬虫或集成服务时必要的步骤,它允许程序模仿用户在网页上的登录行为。以下是一份使用`HttpClient`进行模拟登录的...
总的来说,HttpClient提供了一套强大的工具来处理HTTP通信,通过理解和熟练运用这些工具,你可以轻松地完成各种HTTP任务,包括登录网站。在实际应用中,根据具体需求进行适当的扩展和优化是至关重要的。
在IT行业中,HTTP客户端是用于与HTTP服务器进行通信的软件组件。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。当我们谈论“浏览器发送模拟httpclient软件...
模拟登录通常涉及到自动化过程,它允许程序通过模拟用户输入来登录网站或应用程序,这对于自动化测试、数据抓取或者集成工作流程等场景非常有用。 首先,我们需要理解C#的基础知识,它是.NET框架的主要开发语言之一...
例如,当需要访问需要用户登录或认证的页面时,HttpClient可以方便地管理COOKIE,模拟浏览器的行为。在处理文件上传的问题上,HttpClient也提供了便捷的方法,使得开发者可以轻松地发送POST请求并附带文件数据。 ...
HttpClient,作为Java领域中的一个强大库,是网络爬虫开发中的核心组件。它提供了丰富的API,使得开发者能够高效、灵活地进行HTTP请求的发送与响应的处理,从而实现数据的抓取。在本文中,我们将深入探讨HttpClient...
例如,开发人员可以使用 HttpClient 进行 RESTful API 的调用,获取 JSON 数据,或者进行自动化测试中的 HTTP 请求模拟。 6. **注意事项** - 使用 HttpClient 时,需注意连接管理和资源释放,避免内存泄漏和连接...
本项目"**C#模拟登录(含验证码)**"正是针对这一需求而设计的,它不仅实现了基本的登录逻辑,还考虑到了验证码的处理,这对于很多需要验证用户身份的网站或应用来说至关重要。 首先,我们需要了解模拟登录的基本流程...
二、HttpClient 4.0 的关键组件 1. `HttpClient` 类:作为客户端的核心,它负责创建和管理 HTTP 请求,以及处理服务器的响应。 2. `HttpRequestBase` 和 `HttpResponse`:分别表示 HTTP 请求和响应的基础抽象类,...
在编程领域,模拟登录是一种常见的技术,主要用于自动化测试、数据抓取或个人项目中,以自动填写和提交网站登录表单。本项目提供了一个简单的模拟登录的源代码,旨在帮助初学者理解这一过程。以下是对这个项目的详细...
在Java编程领域,HTTPClient库是一个非常重要的工具,它允许开发者执行HTTP请求并处理响应,非常适合进行网络数据抓取和模拟浏览器行为。本篇将详细讲解`httpclient-4.5`版本及其在Java中的应用。 `httpclient-4.5`...
- **确保低级别资源释放**: 在使用HttpClient时,开发者需要注意释放资源,避免内存泄漏等问题。例如,关闭HttpResponse对象是非常重要的。 - **消耗实体内容**: 当收到响应时,必须显式地消耗实体内容,否则可能...
总结来说,这个Java模拟淘宝登录源码主要展示了如何使用HttpClient进行网络请求,处理登录过程中的数据交互,并依赖其他Apache Commons库提高代码效率和功能。通过学习和理解这段代码,开发者可以更好地掌握HTTP通信...
【标题】"基于httpclient的文件可配置的心跳检测应用"是关于利用Apache HttpClient库进行网络连接健康检查和文件变化监控的技术实现。该应用适用于分布式系统中,确保服务间的通信可靠性,同时也关注本地或远程文件...
本项目利用Apache HttpClient库的4.0-alpha2版本,旨在构建一个基于HTTP协议的网站分析器,以便对网页内容进行抓取、解析和处理。HttpClient是一个功能强大的Java库,它提供了丰富的API来实现复杂的HTTP请求,包括...
HttpClient组件还与其他Symfony组件很好地集成,比如Request和HttpFoundation组件。这意味着你可以将HttpClient的响应轻松地转换为Symfony的Request对象,以便进一步处理。此外,HttpClient还可以与其他PSR-7兼容的...
在自动化测试中,HttpClient可以帮助我们模拟用户与服务器之间的网络交互,例如登录、注册、数据查询等操作。通过设置不同的请求方法(GET、POST、PUT等)、头信息和请求体,我们可以实现对Web服务的全面测试。...
总的来说,HttpClient和Jsoup是Java开发者进行Web数据处理的得力工具,它们提供了高效且灵活的方法来发送HTTP请求和解析HTML文档,是进行网络爬虫开发的重要组件。在实际开发中,结合这两个库,开发者可以构建出功能...
在Java应用中使用HttpClient,可以模拟浏览器行为,发送HTTP请求并接收响应,这对于进行Web服务交互、数据抓取或自动化测试等任务非常有用。 HttpClient所需的jar包通常包括以下组件: 1. `httpclient.jar`: 包含...