我有以下代码
URL url = new URL("http://internalsite");
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
System.out.println(conn);
当我打开这个窗口时,它工作正常 但是当我在Mac / Linux中打开它时出现以下错误
java.io.IOException: Server returned HTTP response code: 401 for URL: http://internalsite
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1459)
知道如何让它在linux / Mac上运行吗?
由于
答案 0 :(得分:0)
问题可能是在Windows上,您使用Windows登录自动对站点进行身份验证(我不知道这是如何工作的),但在Linux或Mac上,您必须自己执行此操作,至少在默认情况下是这样。
可能可以让您的公司服务台设置您的Linux或Mac计算机以相同的方式进行身份验证...但当然这只适用于那些特定的计算机。可能需要一个更通用的解决方案。
答案 1 :(得分:0)
我使用了BasicAuthenticator
class BasicAuthenticator扩展了Authenticator {
private BasicAuthenticator() {
// TODO Auto-generated constructor stub
}
public static BasicAuthenticator THIS = new BasicAuthenticator();
public static Authenticator getAutheticator(){
return THIS;
}
final static String USERNAME = "";
final static String PASSWORD = "";
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USERNAME, PASSWORD.toCharArray());
}
}