模拟登录
1、session方式
package com.crawinfo.httpclient;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
public class HttpClientTest {
/**
* @param args
* @throws IOException
* @throws HttpException
*/
public static void main(String[] args) throws HttpException, IOException {
HttpClient httpclient=new HttpClient();//创建一个客户端,类似打开一个浏览器
GetMethod getMethod=new GetMethod("受保护的地址");
PostMethod postMethod = new PostMethod("登录url");
NameValuePair[] postData = new NameValuePair[2];
postData[0] = new NameValuePair("loginName", "***");
postData[1] = new NameValuePair("loginPswd", "**");
postMethod.addParameters(postData);
int statusCode=httpclient.executeMethod(postMethod);//回车——出拳!
statusCode= httpclient.executeMethod(getMethod);
System.out.println("response1=" + postMethod.getResponseBodyAsString());//察看拳头命中情况,可以获得的东西还有很多,比如head, cookies等等
System.out.println("response2=" + getMethod.getResponseBodyAsString());//察看拳头命中情况,可以获得的东西还有很多,比如head, cookies等等
getMethod.releaseConnection();
postMethod.releaseConnection();//释放,记得收拳哦
}
}
二、cookie方式
package com.crawinfo.rencai;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
public class CrawTest {
static Cookie[] cookies=new Cookie[2];
public static void login() throws Exception {
cookies[0] = new Cookie("抓取信息网址", "SessionId",
"0", "/", -1, false);
cookies[1] = new Cookie("抓取信息网址", "otherproperty",
"xxx", "/", -1, false);
}
public static String getRes(String path)throws Exception{
String res=null;
HttpClient client=new HttpClient();
HttpMethod method=new GetMethod(path);
client.getState().addCookies(cookies);
client.executeMethod(method);
if(method.getStatusCode()==200){
res=method.getResponseBodyAsString();
cookies=client.getState().getCookies();
}
method.releaseConnection();
return res;
}
public static void main(String[] args) throws Exception {
CrawTest.login();
String info = CrawTest.getRes("抓取信息网址");
System.out.println("info="+info);
}
}
分享到:
相关推荐
例如,你可以设置自定义的Cookie策略来处理会话保持,或者使用不同的认证机制(如Basic Auth、OAuth等)来安全地访问受保护的资源。 在开发过程中,理解这些库的作用和它们如何协同工作至关重要。正确配置和使用...
6. **进行认证**:对受保护的Web资源进行身份验证。 总的来说,Apache Commons HttpClient 3.1是Java开发者处理HTTP通信的强大工具,它提供了丰富的功能和高度的灵活性,使得构建网络应用变得更加容易。然而,需要...
当访问受保护的Web资源时,需要正确配置认证策略。 HttpClient还提供了处理重定向、Cookie管理、请求和响应的编码与解码等功能。对于初学者,理解这些功能如何协同工作可以帮助你更好地应对实际开发中的网络请求...
它要求用户在访问受保护资源时提供用户名和密码。这种认证方式是基于HTTP头部的,通过将用户名和密码编码为Base64字符串并将其放入`Authorization`头部来实现。在本文中,我们将深入探讨如何使用POST方式通过HTTP...
服务提供者通过OAuth为消费者提供访问受保护资源的令牌,而消费者则使用这些令牌请求资源。 1. **注册应用**: 在开始任何代码实现之前,你需要在豆瓣开放平台注册你的应用,获取到Client ID和Client Secret。这两个...
4. **Authentication**:支持多种身份验证机制,如Basic、Digest、NTLM等,对于访问受保护的网站资源至关重要。 5. **HttpEntity**:提供了更丰富的实体处理,支持多部分上传、流处理和缓存策略。 6. **HttpClient ...
开发者需要在登录成功后保存并使用这些信息来访问受保护的资源。在这个例子中,我们假设已经成功登录并获取了必要的访问令牌,然后通过HttpClient向淘宝联盟的订单API发起请求,获取订单数据。 下载xls文件部分,...
这意味着所有属于`REST_USER`组的用户都有权访问受保护的REST服务。 - 在`web.xml`中,我们声明了`REST_USER`角色,并定义了一个安全约束(`security-constraint`)。这个约束指定了哪些URL模式(如`/service/...
3. **资源服务器(Resource Server)**:存储并提供受保护资源的服务器。 4. **授权服务器(Authorization Server)**:负责验证资源所有者的身份,并向客户端颁发访问令牌。 5. **访问令牌(Access Token)**:...
在互联网应用中,模拟登录常用于自动化测试、数据抓取或数据分析等场景,它允许程序模拟人类用户登录网站,从而访问受保护的网页内容。 【描述】"web模拟登陆网站源码web模拟登陆网站源码web模拟登陆网站源码" 提及...
在处理过程中,可能需要处理登录认证、cookies维护、重定向等问题,以确保可以访问到受保护的资源。同时,为了优化下载速度,可以实现多线程或异步下载,将任务分配给多个线程或任务队列,以并行方式下载文件。 ...
- 创建URL对象:指定要访问的资源地址。 - 打开连接:使用URL对象打开HttpURLConnection实例。 - 配置连接:设置请求方式(GET、POST等)、添加请求头和参数等。 - 发送请求:根据配置的请求方式发送请求。 - ...
它允许应用程序在用户的授权下访问受保护的资源,如用户的数据或服务。OAuth协议是实现这一功能的标准,它定义了一个授权框架,使得第三方应用可以在用户同意的情况下,安全地获取和使用他们的数据,而无需知道用户...
5. **安全性**:考虑添加身份验证和授权机制,如OAuth2或JWT,以保护REST服务免受未经授权的访问。 6. **错误处理**:提供清晰的错误信息,帮助客户端快速定位问题。 通过以上分析,我们可以看出"REST连通项目...
当用户点击登录按钮时,触发事件处理器,该处理器捕获输入,执行验证,并根据结果显示错误消息或允许用户访问受保护的资源。 5. **下载功能**:一旦用户成功登录,他们可能有权限下载特定的文件或数据。在C#中,...
9. **Atlassian OAuth Library**:处理OAuth认证,确保安全地访问JIRA的受保护资源。 这些依赖包协同工作,构建了一个完整的框架,使得Java开发者能够轻松地集成JIRA的功能到自己的应用中。在使用这些jar包时,...
2. **HTTP客户端库**:库内集成了Apache HttpClient库,提供了高效的HTTP请求处理机制,支持OAuth 2.0身份验证,用于安全地访问受保护的API资源。 3. **OAuth 2.0身份验证**:提供了一套完整的OAuth 2.0认证流程,...
Java安全手册指南旨在提供一套详尽的指导原则和最佳实践,帮助开发者在使用Java编程时保护应用程序免受各种安全威胁。Java作为一种广泛使用的跨平台语言,其安全性是开发者必须重视的关键方面。本指南将深入探讨Java...
开发者需要理解和正确实施这些机制,以保护Web服务免受未经授权的访问。 对于API的设计,遵循REST原则(Representational State Transfer)是最佳实践。RESTful API具有清晰的资源定位、无状态、缓存支持和统一接口...
例如,`auth:api`中间件可以用于保护API路由,确保只有经过身份验证的用户才能访问。 ```php Route::group(['middleware' => 'auth:api'], function () { Route::get('/user', function (Request $request) { ...