HttpClient commons-httpclient摘要式身份验证

时间:2010-04-20 13:41:22

标签: java authentication digest apache-commons-httpclient

我使用commons-httpclient

从PostMethod收到此错误

没有可用于DIGEST'realm'@ localhost

的凭据

从服务器返回401。

我按照这篇文章的例子 java客户端程序使用HttpClient API发送摘要认证请求(2)

然而,它似乎仍然失败。

我正在尝试连接到XML-RPC服务,我们使用摘要式身份验证。我尝试使用Apache xmlrpc库,但它似乎不支持摘要式身份验证。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我正在尝试做同样的事情。我的XML-RPC客户端现在工作正常:

    public static short connectToBugTrackingXmlRpcServer() {
    try {
        XmlRpcClientConfigImpl xmlRpcClientConfig = new XmlRpcClientConfigImpl();
        xmlRpcClientConfig.setServerURL(new URL(CStudioGlobals.bugTrackingConfProperties.getUrlXmlRpcServer()));
        xmlRpcClientConfig.setBasicUserName(CStudioGlobals.bugTrackingConfProperties.getUsername());
        xmlRpcClientConfig.setBasicPassword(CStudioGlobals.bugTrackingConfProperties.getPassword());
        xmlRpcClientConfig.setEncoding("UTF-8");

        XmlRpcClient xmlRpcClient = new XmlRpcClient();
        xmlRpcClient.setConfig(xmlRpcClientConfig);

        CTrackerDynamicProxy xmlRpcProxy = new CTrackerDynamicProxy(xmlRpcClient);

        Ticket ticket = (Ticket)xmlRpcProxy.newInstance(Ticket.class);
        ticket.query(); // query some tickets

        return CONNECTION_SUCCESS;
    } catch (Throwable t) {
        t.printStackTrace();
        displayError(CStudioGlobals.localization.getTerm("error.title.Sql_error"),
                     CStudioGlobals.localization.getTerm("error.content._Invalid_connection"),
                     CStudioGlobals.localization.getTerm("error.resolution.Check_your_connection_settings"));
        return CONNECTION_RETRY;
    }
}

但我想使用http摘要身份验证。你能解释一下你做到了吗? 谢谢,