gpt4 book ai didi

java - 使用 Unirest JAVA 进行身份验证

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:29 26 4
gpt4 key购买 nike

我需要向执行补丁程序的 Web 应用程序执行请求。我正在向此请求提供它请求我的参数,但我不知道如何从我在补丁请求之前执行的登录请求传递凭据。我试图从登录响应的 header 中获取 cookie 数据,并将其作为简单字符串提供给补丁请求,但我不确定这样做是否正确。基本上我正在做的就是这个。

HttpResponse<JsonNode> respuesta = Unirest.post(urlLogin)
.headers(headers)
.fields(fields)
.asJson();
JSONObject body = respuesta.getBody().getObject();
Headers headerBody = respuesta.getHeaders();
String tmp = headerBody.get("set-cookie").get(0);
this.cookie = "sd-touch-mode=false; ".concat(tmp.replace(";Path=/;HttpOnly",""));
Map<String,String> cabeceras = new HashMap<String, String>();
cabecera.put("Cookie", this.cookie);
HttpResponse<JsonNode> respuesta = Unirest.post(urlFixpack)
.headers(headers)
.fields(fields)
.asJson();

我对获取和设置 cookie 数据的方式不满意,但我在文档中没有找到任何正确的方法。

谁能帮帮我

谢谢。

最佳答案

看起来不支持 cookie 是 Unirest 的一个有意识的设计决定。来自pull-request that adds cookie support的评论:

A REST API should be stateless, so I would like to avoid cookies support in our mainstream client libraries.. but I will keep this pull request open, so if anyone has to access an API with cookies he'll be able to use your code ;)

但是,未经测试,我的印象是 playing with custom HTTP clients应该管用。我会尝试类似的东西

cookieStore = new org.apache.http.impl.client.BasicCookieStore();
Unirest.setHttpClient(org.apache.http.impl.client.HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build());

关于java - 使用 Unirest JAVA 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850640/

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