Jua*_*rty 11 java cookies unirest
我需要对执行补丁程序的Web应用程序执行请求.我正在向这个请求提供它请求我的参数,但我不知道如何从我在补丁请求之前执行的登录请求中传递凭据.我正在尝试从登录响应的标题中获取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();
Run Code Online (Sandbox Code Playgroud)
我对获取和设置cookie数据的方式感到不舒服,但我没有在文档中找到任何正确的方法.
请有人帮帮我.
谢谢.
xve*_*ges 12
看起来不支持cookie是Unirest的有意识的设计决定.来自添加cookie支持的pull-request的注释:
REST API应该是无状态的,所以我想避免在我们的主流客户端库中支持cookie.但是我会保持这个pull请求打开,所以如果有人必须访问带有cookie的API,他将能够使用你的代码;)
但是,如果不进行测试,我认为使用自定义HTTP客户端应该可以正常工作.我试着尝试类似的东西
cookieStore = new org.apache.http.impl.client.BasicCookieStore();
Unirest.setHttpClient(org.apache.http.impl.client.HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6346 次 |
| 最近记录: |