`
lingyun246
  • 浏览: 38378 次
  • 来自: 北京
社区版块
存档分类
最新评论

java 模拟cookie 调用httpget请求

阅读更多
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();
    }
}
分享到:
评论
1 楼 xgia7 2017-05-18  
ceshi.txt文件里面是什么Nerong

相关推荐

    HttpClient模拟get,post请求并发送请求参数(json等)

    接下来,我们讨论如何使用HttpClient进行GET请求。GET请求通常用于获取资源,不涉及请求体: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...

    httpUtil httpclient 登陆携带cookie访问下一个连接

    6. **携带Cookie访问其他链接**:一旦登录成功,你可以创建一个新的`HttpGet`请求,这次同样将之前保存cookie的`HttpContext`传递给`execute`方法。`HttpClient`会自动将cookie添加到请求头中,这样服务器就能识别出...

    java web中 HttpClient模拟浏览器登录后发起请求

    在上面的代码中,我们首先使用 HttpPost 方法模拟浏览器登录到服务器,然后使用 HttpGet 方法请求需要的资源。在整个过程中,我们使用的是 DefaultHttpClient 对象,并使用 PoolingClientConnectionManager 来管理...

    java发送http请求工具类

    在Java编程中,发送HTTP请求是一项常见的任务,无论是获取网页数据、调用API接口还是进行自动化测试,都可能涉及到。本篇文章将详细讲解一个简单的Java工具类,用于发送HTTP请求,该工具类名为HttpURLUtils。 首先...

    java模拟淘宝登录源码

    - **构建GET请求**:首先,可能需要发送一个GET请求到登录页面,获取登录页面的HTML内容,这可能用于提取登录表单的隐藏字段或验证码等信息。 - **解析HTML**:可能使用了Jsoup或其他HTML解析库来解析登录页面的...

    Java模拟get/post登陆(含验证码)

    本篇文章将深入探讨如何使用Java模拟GET/POST登录,特别是涉及验证码处理的情况。我们将主要关注Httpclient库的使用,以及可能涉及到的图像识别技术(OCR)。 首先,让我们了解一下HTTP的基本概念。HTTP是超文本...

    java使用httpclient模拟post请求和get请求示例

    在这个示例中,我们将深入探讨如何使用HttpClient来模拟POST和GET请求。 首先,导入所需的库: ```java import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons....

    java实现多次HttpURLConnection共享session

    在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...

    cookie接口 实现本地或客户端的cookie的创建和读取

    测试类则用于验证这些功能的正确性,通常会使用JUnit或其他单元测试框架编写,通过模拟请求和响应来测试Cookie操作。 在提供的压缩包文件`cookies`中,可能包含了一个接口(定义了Cookie操作的规范),一个实现类...

    HttpClient模拟登陆方正系统

    2. 获取页面内容:使用HttpGet请求获取页面HTML,然后可以使用Jsoup或其他解析库解析HTML,提取所需信息: ```java HttpGet httpGet = new HttpGet("http://example.com/courses"); CloseableHttpResponse response...

    模拟登陆百度的Java实现

    创建CloseableHttpClient实例,使用HttpGet或HttpPost对象构建请求,设置请求头,通过EntityBuilder构建请求体,最后调用execute方法发送请求。 在模拟登录时,我们还需要处理cookies,因为大多数网站会使用session...

    java获取http请求的Header和Body的简单方法

    1. 请求行(Request Line):包括HTTP方法(GET、POST等)、URL和HTTP版本。 2. 请求头(Request Headers):包含了客户端的一些信息,如用户代理、Cookie、接受的编码格式等。 3. 空行(CRLF, \r\n):用于区分请求...

    HttpClient中的client和server相互调用的两个例子

    - 客户端示例:发送GET请求 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://example.com"); HttpResponse response = httpClient.execute...

    HTTP Programming Recipes for Java Bots

    GET请求则用于获取资源,通常附带查询参数。PUT和DELETE用于更新或删除资源,常见于RESTful API交互。 书中还会深入讲解HTTP响应,包括状态码、响应头和响应体。理解HTTP状态码的意义,如200(成功)、404(未找到...

    java获取百度网盘分享的真实地址并下载

    - 我们需要构造一个GET或POST请求到百度网盘的分享链接,通常会包含一些特定的参数,如`bdstoken`、`shareid`和`uk`。 2. **登录与Cookie管理**: - 百度网盘通常需要登录才能访问共享文件,因此可能需要先登录。...

    http客户端程序

    下面是一个简单的Java `HttpClient`使用示例,展示如何发送GET请求和将响应写入文件: ```java import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org....

    Okhttp3实现爬取验证码及获取Cookie的示例

    当用户请求生成验证码图片时,服务器通常会同时返回一个Cookie,这个Cookie用于后续的交互,确保请求的合法性。 ### 2. 使用前准备 #### 2.1 简介 Okhttp是一个高效的HTTP客户端库,它提供了异步和同步两种API,...

    java--curl工具,用于生成curl链接,直接在服务器上使用

    `Curl`注解通常定义在Feign接口的方法上,当这个方法被调用时,`CurlAspect`切面会捕获请求的相关信息,如HTTP方法(GET, POST等)、URL、请求头和请求体,然后构建并输出对应的curl命令。这样,开发者可以直接在...

    Ajax与跨站点请求伪造漏洞

    - 注意请求方式应使用POST,因为目标网站可能已经禁止GET请求。 **攻击条件:** - 受害者需要使用支持跨站点请求的浏览器,如旧版IE。 - 受害者需要在登录目标网站的同时保持恶意网页的打开状态。 **攻击效果:**...

    curl-java-trunk.tar.gz

    1. **发起HTTP请求**:使用Java代码模拟`curl`命令发送GET、POST、PUT、DELETE等各种HTTP方法的请求。 2. **处理HTTP头信息**:设置和解析请求头,例如设置用户代理、认证信息、Cookie等。 3. **处理HTTP响应**:...

Global site tag (gtag.js) - Google Analytics