gpt4 book ai didi

java - 尝试使用 HttpClient 获取 DOMINO HTTP session — 响应代码始终为 200

转载 作者:行者123 更新时间:2023-12-02 07:33:40 26 4
gpt4 key购买 nike

MY Domino 服务器已启用 session 身份验证,并且 HTTP 端口号配置为 8080。

当我执行下面的程序来获取 domino HTTP session 时,我总是得到下面的输出。

我知道响应代码 200 表示运行顺利。但我没有看到服务器上创建任何 HTTP session 。即使我向 UsernamePasswordCredentials("xxxxx", "xxxxx") 提供了错误的凭据,它仍然返回 200 作为其响应代码。对此有何建议?

public class ClientAuthentication { 

public static void main(String[] args) {

DefaultHttpClient httpclient = new DefaultHttpClient();
try {


httpclient.getCredentialsProvider().setCredentials( new AuthScope("10.40.xx.xx", 8080),
new UsernamePasswordCredentials("xxxxx", "xxxxx"));
HttpPost httppost = new HttpPost("http://10.40.xx.xx:8080/names.nsf?Login");
System.out.println("executing request" + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);

HttpEntity entity = response.getEntity();

if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK){
System.out.println("---------------OKAY OKAY-------------------------");
System.out.println("RESPONSE CODE " + response.getStatusLine().getStatusCode());
}

if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}


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



}

}

输出:

executing requestPOST http://10.40.xx.xx:8080/names.nsf?Login HTTP/1.1
---------------OKAY OKAY-------------------------
RESPONSE CODE 200
Response content length: 4256

最佳答案

您已设置 session 身份验证。但您正在尝试通过默认的 getCredentialsProvider 进行基本身份验证。您收到的 200 响应是实际的 session 身份验证登录表单,您应该发布该表单。

正确的顺序是

  • 使用您正在登录的数据库的 URL 执行 GET
  • 接收 200 以及服务器的登录表单作为响应
  • 填写表单数据的用户名和密码名称/值对并将其发布

理论上,您应该编写自己的类来实现针对 Domino session 身份验证表单定制的 CredentialsProvider 接口(interface),并将其与您自己的扩展 AbstractHttpClient 的 DominoHttpClient 类一起使用,以便干净地实现此序列;但我认为这并不值得付出这样的努力。

关于java - 尝试使用 HttpClient 获取 DOMINO HTTP session — 响应代码始终为 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576967/

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