gpt4 book ai didi

java - HttpClient 身份验证 -

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:11:59 24 4
gpt4 key购买 nike

我正在尝试在 java 中模拟这种行为

curl -u usrname:password http://somewebsite.com/docs/DOC-2264

我不确定授权是 NTLM 还是 Basic。我登录网站提供用户名和密码。这是一个表单帖子。使用上面的 curl 命令我可以登录并获取内容。

为了在 java 中做到这一点,我做了:

    try {
URL url = new URL("http://somewebsite.com/docs/DOC-2264");
String authStr ="username:password";
String encodedAuthStr = Base64.encodeBytes(authStr.getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
onnection.setRequestProperty("Authorization", "Basic" + encodedAuthStr);

InputStream content = (InputStream)connection.getInputStream();
BufferedReader in =
new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}


} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

但我只得到登录页面。不是实际内容。我做错了什么?

最佳答案

  1. 您可以通过添加 -v(详细)选项查看 curl 发送的确切 header 。
  2. Authorization header 需要在 base64 编码的用户名/密码之前的身份验证类型。它应该看起来像这样:Authorization: Basic dXNybmFtZTpwYXNzd29yZA==

关于java - HttpClient 身份验证 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11369106/

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