我想從需要驗證的網站Socialcast獲取內容。 (首先我使用基本身份驗證進行HTTP POST,然後嘗試HTTP GET)。 我試了幾個代碼,我收到此中的 「結果」:
[email protected]:演示 Base64編碼字符串,權威性:ZW1pbHlAc29jaWFsY2FzdC5jb206ZGVtbw == * BEGIN 您正在redirected。 END *HTTP基本驗證Java
這裏是HTTP基本驗證碼:
try {
String webPage = "http://demo.socialcast.com";
String name = "[email protected]";
String password = "demo";
String authString = name + ":" + password;
System.out.println("auth string: " + authString);
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
System.out.println("Base64 encoded auth string: " + authStringEnc);
URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream is = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int numCharsRead;
char[] charArray = new char[1024];
StringBuffer sb = new StringBuffer();
while ((numCharsRead = isr.read(charArray)) > 0) {
sb.append(charArray, 0, numCharsRead);
}
String result = sb.toString();
System.out.println("*** BEGIN ***");
System.out.println(result);
System.out.println("*** END ***");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
然而,當我嘗試之後做一個GET,它說,未授權的。 憑據是[email protected]/demo - 這些由Socialcast Dev提供,因爲我也無法訪問我自己的Socialcast實例。
這段代碼錯了嗎?我如何正確地做到這一點?順便說一句,我使用HttpClient 4.x.
是的,我。但即使在第一個它不工作...... –
看來你被重定向到HTTPS頁面,你有沒有試過直接查詢它? –
好暗示,我會盡力的! –