【发布时间】:2014-11-28 15:50:30
【问题描述】:
我正在尝试通过 JAVA 打开一个需要用户名和密码的网页: page I am trying to acces
这是我复制的引用from this site的代码:
public static void main(String[] args) {
try {
String webPage = "https://reports.tradenetworks.com/ReportServer_DISTRIBUTORRS?%2fDealing&rs:Command=ListChildren";
String name = "Tradenetworks\\USER";
String password = "PASS";
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();
}
}
但是我从 eclipse 中得到这个错误:
java.io.IOException: Authentication failure
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at ConnectToUrlUsingBasicAuthentication.main(ConnectToUrlUsingBasicAuthentication.java:27)
【问题讨论】:
-
不,您从站点的网络服务器而不是 Eclipse 收到该错误。停止射击信使。所以现在你必须调试你的问题,我会首先输出那个base64编码字符串来看看里面到底有什么——可能它不正确。当您只是从某个随机站点复制/粘贴代码时,往往会发生这种情况。您确实尝试在浏览器中打开网址,对吗?如果用户名/密码实际上是错误的,那就太可惜了。
-
嘿用户名和密码正确我重新检查了如果base64正确我现在怎么办?
标签: java html authentication web