import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 模拟cookie 调用 http请求
*/
public class CookieTest {
@Test
public void testpublish() throws IOException {
String urlTemplate = "http://ceshi/%s";
//把文件内容转换为字符串集合,每行为一个字符串对象
List<String> tempIds = FileUtils.readLines(new File("e:\\tmp\\ceshi.txt"));
//实际调用接口用到的cookie 里的数据,可以循环多个
BasicCookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("user", "ceshi");
cookie.setDomain(".ceshi.com");
cookie.setPath("/");
cookieStore.addCookie(cookie);
BasicClientCookie cookie1 = new BasicClientCookie("thor", "ceshi");
cookie1.setDomain(".ceshi.com");
cookie1.setPath("/");
cookieStore.addCookie(cookie1);
CloseableHttpClient client = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
for (String tempId : tempIds) {
String url = String.format(urlTemplate, tempId.trim());
System.out.println("url = " + url);
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse httpResponse = client.execute(httpGet);
// 响应状态
System.out.println("status:" + httpResponse.getStatusLine());
HttpEntity entity = httpResponse.getEntity();
String s = EntityUtils.toString(entity);
System.out.println("entity s = " + s);
httpResponse.close();
// 休眠1s
try {
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
client.close();
}
}
分享到:
相关推荐
接下来,我们讨论如何使用HttpClient进行GET请求。GET请求通常用于获取资源,不涉及请求体: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...
6. **携带Cookie访问其他链接**:一旦登录成功,你可以创建一个新的`HttpGet`请求,这次同样将之前保存cookie的`HttpContext`传递给`execute`方法。`HttpClient`会自动将cookie添加到请求头中,这样服务器就能识别出...
在上面的代码中,我们首先使用 HttpPost 方法模拟浏览器登录到服务器,然后使用 HttpGet 方法请求需要的资源。在整个过程中,我们使用的是 DefaultHttpClient 对象,并使用 PoolingClientConnectionManager 来管理...
在Java编程中,发送HTTP请求是一项常见的任务,无论是获取网页数据、调用API接口还是进行自动化测试,都可能涉及到。本篇文章将详细讲解一个简单的Java工具类,用于发送HTTP请求,该工具类名为HttpURLUtils。 首先...
- **构建GET请求**:首先,可能需要发送一个GET请求到登录页面,获取登录页面的HTML内容,这可能用于提取登录表单的隐藏字段或验证码等信息。 - **解析HTML**:可能使用了Jsoup或其他HTML解析库来解析登录页面的...
本篇文章将深入探讨如何使用Java模拟GET/POST登录,特别是涉及验证码处理的情况。我们将主要关注Httpclient库的使用,以及可能涉及到的图像识别技术(OCR)。 首先,让我们了解一下HTTP的基本概念。HTTP是超文本...
在这个示例中,我们将深入探讨如何使用HttpClient来模拟POST和GET请求。 首先,导入所需的库: ```java import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons....
在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...
测试类则用于验证这些功能的正确性,通常会使用JUnit或其他单元测试框架编写,通过模拟请求和响应来测试Cookie操作。 在提供的压缩包文件`cookies`中,可能包含了一个接口(定义了Cookie操作的规范),一个实现类...
2. 获取页面内容:使用HttpGet请求获取页面HTML,然后可以使用Jsoup或其他解析库解析HTML,提取所需信息: ```java HttpGet httpGet = new HttpGet("http://example.com/courses"); CloseableHttpResponse response...
创建CloseableHttpClient实例,使用HttpGet或HttpPost对象构建请求,设置请求头,通过EntityBuilder构建请求体,最后调用execute方法发送请求。 在模拟登录时,我们还需要处理cookies,因为大多数网站会使用session...
1. 请求行(Request Line):包括HTTP方法(GET、POST等)、URL和HTTP版本。 2. 请求头(Request Headers):包含了客户端的一些信息,如用户代理、Cookie、接受的编码格式等。 3. 空行(CRLF, \r\n):用于区分请求...
- 我们需要构造一个GET或POST请求到百度网盘的分享链接,通常会包含一些特定的参数,如`bdstoken`、`shareid`和`uk`。 2. **登录与Cookie管理**: - 百度网盘通常需要登录才能访问共享文件,因此可能需要先登录。...
- 客户端示例:发送GET请求 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); HttpResponse response = httpClient.execute...
GET请求则用于获取资源,通常附带查询参数。PUT和DELETE用于更新或删除资源,常见于RESTful API交互。 书中还会深入讲解HTTP响应,包括状态码、响应头和响应体。理解HTTP状态码的意义,如200(成功)、404(未找到...
下面是一个简单的Java `HttpClient`使用示例,展示如何发送GET请求和将响应写入文件: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org....
当用户请求生成验证码图片时,服务器通常会同时返回一个Cookie,这个Cookie用于后续的交互,确保请求的合法性。 ### 2. 使用前准备 #### 2.1 简介 Okhttp是一个高效的HTTP客户端库,它提供了异步和同步两种API,...
`Curl`注解通常定义在Feign接口的方法上,当这个方法被调用时,`CurlAspect`切面会捕获请求的相关信息,如HTTP方法(GET, POST等)、URL、请求头和请求体,然后构建并输出对应的curl命令。这样,开发者可以直接在...
- 注意请求方式应使用POST,因为目标网站可能已经禁止GET请求。 **攻击条件:** - 受害者需要使用支持跨站点请求的浏览器,如旧版IE。 - 受害者需要在登录目标网站的同时保持恶意网页的打开状态。 **攻击效果:**...
1. **发起HTTP请求**:使用Java代码模拟`curl`命令发送GET、POST、PUT、DELETE等各种HTTP方法的请求。 2. **处理HTTP头信息**:设置和解析请求头,例如设置用户代理、认证信息、Cookie等。 3. **处理HTTP响应**:...