gpt4 book ai didi

java - 使用 OkHttp 的 Cookie

转载 作者:行者123 更新时间:2023-12-01 18:05:50 25 4
gpt4 key购买 nike

我一直在用 Java 开发一个向服务器发出请求的客户端。现在,为了保持用户登录,我需要以与 postman 或浏览器相同的方式设置 cookie,也就是说,如果服务器设置了 cookie,则客户端必须在将来定向到此 url 的请求中使用它。我目前有一个使用 OkHttp 实现的 http 客户端,但如果有更好的方法来实现它,我不介意更改库。我一直在寻找,并且发现 CookieJar 可以解决我的问题,但我还没有找到可以遵循的具体示例。

简而言之:如何在这个方法中添加cookie到这个接口(interface)来达到目的?

非常感谢!

public static String sendPost(Map<String,Object> messageToSend, String url) throws Exception {
// Set requestBody as individual formatted to json
String jsonRequest = new Gson().toJson(messageToSend);
RequestBody body = RequestBody.create(jsonRequest,MediaType.parse("application/json; charset=utf-8"));

// Set request parameters
Request request = new Request.Builder()
.url("http://" + ADDR + ":" + PORT + url)
.addHeader("User-Agent", "OkHttp Bot")
.post(body)
.build();

// Send request and get response body
Response response = HTTP_CLIENT.newCall(request).execute();
if (response.isSuccessful()) {
ResponseBody responseBody = response.body();
if (responseBody != null)
return responseBody.string();
}
return null;
}

P.D.:服务器正确设置 cookie,就像在浏览器和 Postman 中一样,它的工作方式就像一个魅力。

最佳答案

最后我将 OkHttp 更改为 HttpClient(由 Apache 提供),效果很好。

我使用的代码:

private HttpClient httpClient;
private HttpContext httpContext = new BasicHttpContext();

public MyHttpClient() {
httpClient = HttpClientBuilder.create().build();
httpContext.setAttribute(HttpClientContext.COOKIE_STORE, new BasicCookieStore());
}

关于java - 使用 OkHttp 的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60560987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com