兩個相關的問題,我使用的是Apache HTTP Client 4.x API。 myHttpPost是HttpPost的一個實例,myHttpClient是HttpClient的一個實例。我正嘗試使用基本身份驗證發送請求。所以我有一個HttpClient並創建一個HttpPost。Base64編碼基本身份驗證標頭Apache HTTP客戶端
設置基本身份驗證標頭的'蠻力'方式似乎是將其設置在HttpPost標頭中。
String encoding = Base64Encoder.encode("username" + ":" + "password");
myHttpPost.setHeader("Authorization", "Basic " + encoding);
的例子從另一個堆棧溢出問題上面來了(無法找到鏈接到現在)。關於Base64Encoder類 - 我可以在哪個包中找到它或從哪裏下載它?
主要問題 - 我希望做一個更美觀的方式基本身份驗證使用下面的代碼:
myHttpClient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.BASIC),
new UsernamePasswordCredentials("username", "password")
);
但這似乎並沒有工作。那麼,上面的第一個例子是使用Apache HTTP Client 4.0進行基本身份驗證的正確方法嗎?或者有更清潔/更簡單的方法。
謝謝TEG - 我試過這個,但沒有成功(嘗試了文字'基本'和常量。)。我已經更新了這個問題以反映這個額外的參數。儘管如此,基礎64編碼頭仍然可以解決工作問題。 – gamozzii