1

所以我正在尝试连接到一个数据库(服务器的所有者外包了设置工作并且不知道它的详细信息)并拥有一个用户名和密码。当我尝试以最基本的方式连接 curl 时,我被拒绝了。

curl --user "用户名:密码" http://test.com

当我添加 --digest 标志时,它可以工作。所以一个有效的 curl 请求看起来像这样:

curl --digest --user "用户名:密码" http://test.com

现在的问题是我需要在 java 中编写代码并且并不真正理解 --digest 标志在做什么。我知道摘要身份验证和算法,但这是我不想实现的东西,我认为我也不需要(基于事实 curl 对此有一个微不足道的标志,我希望在 java 中有一些类似的工作)。有谁知道更简单的方法来做到这一点?我可以设置一些标题吗?本质上,我想知道 java 中 curl 等效项的 --digest 标志。谢谢。

4

2 回答 2

0

Apache HttpClient库支持各种身份验证方案,但它不像设置 --digest 标志那么简单。

在这里查看相关文档:http: //hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html

抢先式摘要身份验证的具体示例:http: //hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java

于 2013-03-06T19:06:03.000 回答
0

我不知道这与数据库有什么关系,但 --digest 会打开 Digest 身份验证。没有它,您将使用基本身份验证。

http://curl.haxx.se/docs/manpage.html#--digest

这是这两个含义的规范参考,我会看看是否可以找到一些对读者更友好的东西,如果可以的话添加它。

https://www.rfc-editor.org/rfc/rfc2617

这似乎更容易......好吧......--digest :)

http://frontier.userland.com/stories/storyReader$2159

而且我还建议使用 Apache HTTP 客户端从 java 执行 http 请求,尽管我不确定从你的问题介绍中你提到数据库的地方是否真的是你想要做的。

于 2013-03-06T19:10:02.507 回答