首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将cURL调用转换为Java

将cURL调用转换为Java
EN

Stack Overflow用户
提问于 2017-01-26 16:13:18
回答 1查看 557关注 0票数 0

我有以下要转换为java代码的cURL:

代码语言:javascript
复制
curl -i -b 'JSESSIONID=ekl23l2-3321-1930-b889-kelwek23b8v9; Path=/; HttpOnly' http://127.0.0.1:8080/api/library

在上面的调用中,JSESSIONID cookie负责确保服务器对调用进行身份验证。我想出了以下Java代码:

代码语言:javascript
复制
    CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    HttpGet httpGet = new HttpGet("http://127.0.0.1:8080/api/library");
    httpGet.addHeader("Set-Cookie","JSESSIONID=ekl23l2-3321-1930-b889-kelwek23b8v9; Path=/; HttpOnly");
    HttpResponse httpResponse = httpClient.execute(httpGet);
    BufferedReader rd = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
    StringBuffer result = new StringBuffer();
    String line = "";
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }
    JSONObject o = new JSONObject(result.toString());
    rd.close();
    httpClient.close();     

然而,这对我不起作用,因为服务器抱怨未经授权的访问。此响应发生在用户未经授权时,这意味着JSESSIONID不知何故没有正确设置。有谁能评论一下这是否是将cURL翻译成Java的正确方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 18:21:14

您使用的是Set-Cookie (来自响应标头中的服务器),而它应该只是Cookie: (来自请求标头中的客户端)。

代码语言:javascript
复制
httpGet.addHeader("Cookie","JSESSIONID=ekl23l2-3321-1930-b889-kelwek23b8v9; Path=/; HttpOnly");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41869200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档