gpt4 book ai didi

java - Apache HTTP 客户端中的 Cookie - Java

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:46 24 4
gpt4 key购买 nike

我在使用 Java 版 Apache httpclient 时遇到了一些问题。我正在为一个网站编写一个登录机器人,它从登录表单中提取所有字段,填写用户名和密码,然后通过发出 POST 请求登录帐户。我尝试使用java提供的类,但每次都被扔回登录页面。它似乎可以与 Apache 客户端一起使用,但我尝试删除所有 cookie 处理代码以查看它是否仍然有效。我不再将 cookie 保存在列表中,也不将 cookie 添加到请求中,但似乎我仍然可以正确登录。怎么可能?我不使用 cookiestore,也不知道 cookie 来自哪里,所以显然它们必须保存在后台的某个地方。我需要清除它们才能开始新的 session 。我像这样创建客户端

    CloseableHttpClient client = HttpClients.createDefault();

并提出这样的请求

HttpPost post = new HttpPost(url+"/login");
HttpResponse response = client.execute(post);

最佳答案

我的英语很差。cookie实际上来自CookieStore。但是cookie不是在execute(HttpUriRequest request)中操作的。如果您想添加或删除cookie,您可以使用execute(HttpUriRequest request, HttpContext context)。例如:

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

import java.io.IOException;

/**
* Created by y.wang on 11/16/16.
*/
public class HttpClientTest {
public static void main(String[] args){
CloseableHttpClient client = HttpClients.createDefault();
HttpClientContext httpClientContext = new HttpClientContext();
String url = "";
HttpPost post = new HttpPost(url + "/login");
try {
HttpResponse response = client.execute(post, httpClientContext);
} catch (IOException e) {
e.printStackTrace();
}
httpClientContext.getCookieStore().clear();
}
}

关于java - Apache HTTP 客户端中的 Cookie - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072479/

24 4 0
文章推荐: java - hs_err_pid.log 中的 "Events"是什么?
文章推荐: c++ - 如何在 Microsoft Visual C++.2010 Express 中链接 Lua?
文章推荐: java - PaintComponent 未由构造函数或创建对象时调用
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com