gpt4 book ai didi

java - 将 cURL 调用转换为 Java

转载 作者:行者123 更新时间:2023-12-02 03:05:04 25 4
gpt4 key购买 nike

我想将以下 cURL 转换为 java 代码:

curl -i -b 'JSESSIONID=ekl23l2-3321-1930-b889-kelwek23b8v9; Path=/; HttpOnly' http://127.0.0.1:8080/api/library

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

    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 的正确方法吗?

最佳答案

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

httpGet.addHeader("Cookie","JSESSIONID=ekl23l2-3321-1930-b889-kelwek23b8v9; Path=/; HttpOnly");

关于java - 将 cURL 调用转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41869200/

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