我試圖模仿這種行爲在java中HttpClient的認證 -
curl -u usrname:password http://somewebsite.com/docs/DOC-2264
我不知道,如果AUTH是NTLM或基本。我登錄到提供用戶名和密碼的網站。這是一個表單帖子。使用上面的curl命令,我可以登錄並獲取內容。
在Java中我沒有做到這一點:
try {
URL url = new URL("http://somewebsite.com/docs/DOC-2264");
String authStr ="username:password";
String encodedAuthStr = Base64.encodeBytes(authStr.getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
onnection.setRequestProperty("Authorization", "Basic" + encodedAuthStr);
InputStream content = (InputStream)connection.getInputStream();
BufferedReader in =
new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但我只得到了登錄頁面。不是實際的內容。 我在做什麼錯?
我改變了我的帖子,以反映這一點。我試過-v選項,看到它使用基本身份驗證 – 12rad 2012-07-06 21:08:39
它還設置了一個cookie:
12rad
2012-07-06 21:09:28
您需要在Basic和用戶名/密碼 – ataylor 2012-07-06 21:29:24