Prelude
嘗試使用基本身份驗證模擬指令時Java,考慮這一點至關重要以下:
HttpClient 3.0
public class HttpBasicAuth { // ... public static void main(String[] args) { // ... client.getState().setCredentials( new AuthScope("hostname"), // Use the IP address or hostname here new UsernamePasswordCredentials("username", "password") ); // ... } }
HttpClient 4.0.1
public class HttpBasicAuth { // ... public static void main(String[] args) { // ... DefaultHttpClient httpclient = new DefaultHttpClient(); httpclient.getCredentialsProvider().setCredentials( new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("username", "password") ); // ... } }
常見問題
兩者中在HttpClient 3.0 和4.0.1 範例中,由於範圍定義無效,可能會出現內部伺服器錯誤(500)。正確的範圍定義取決於目標伺服器配置。將範圍設為 AuthScope.ANY_HOST 和 AuthScope.ANY_PORT,您假設憑證適用於任何主機和端口,但情況可能並非如此。驗證目標伺服器配置並使用適當的範圍定義應該可以解決此錯誤。替代方法 (HttpClient 4.0.1)
使用 HttpClient 實現基本驗證的另一種方法4.0.1如下:以上是如何使用 HttpClient 在 Java 中實作 HTTP 基本驗證:避免常見陷阱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!