2010-04-20 61 views
2

我從一個的PostMethod使用收到此錯誤公地httpclient的HttpClient的公地httpclient的摘要式身份驗證

可供消化「境界」無憑據@本地

和401從服務器返回。

我跟着這個職位 的Java客戶端程序的例子來發送使用HttpClient的API(2)

但是,它似乎仍然無法消化認證請求。

我想連接到XML-RPC服務,我們使用摘要式身份驗證。我嘗試使用Apache xmlrpc庫,但它似乎不支持摘要式身份驗證。

任何想法?

謝謝。

+0

我的錯誤,似乎有兩種類型的憑據。 設置第二個似乎已經解決了這個問題。 對不起。 httpclient.getState()。setProxyCredentials(authscope,upc); httpclient.getState()。setCredentials(authscope,upc); – Dave 2010-04-20 14:02:13

回答

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摘要身份驗證。你能解釋一下你做到了嗎? 謝謝,

+1

是的,它並不那麼棘手, 你需要設置 你必須創建一個AuthScope對象和UsernamePasswpordCredentials對象。查看文檔的確切用法,但它會起作用,它適用於我測試的許多環境。 httpclient.getState()。setProxyCredentials(authscope,upc); httpclient.getState()。setCredentials(authscope,upc); – Dave 2010-05-05 14:48:27

相關問題