我想通過java代理連接到網站。這是我寫的代碼:使用java中的代理服務器代碼連接到站點
public class ConnectThroughProxy
{
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy ip", 8080));
public static void main(String[] args)
{
try
{
URL url = new URL("http://www.rgagnon.com/javadetails/java-0085.html");
URLConnection connection=url.openConnection();
String encoded = new String(Base64.encode(new String("user_name:pass_word").getBytes()));
connection.setDoOutput(true);
connection.setRequestProperty("Proxy-Authorization","Basic "+encoded);
String page="";
String line;
StringBuffer tmp = new StringBuffer();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line=in.readLine()) != null)
{
page.concat(line + "\n");
}
System.out.println(page);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
試圖運行這段代碼,它拋出以下錯誤:
java.lang.IllegalArgumentException: Illegal character(s) in message header value: Basic dXNlcl9uYW1lOnBhc3Nfd29yZA==
at sun.net.www.protocol.http.HttpURLConnection.checkMessageHeader(HttpURLConnection.java:323)
at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:2054)
at test.ConnectThroughProxy.main(ConnectThroughProxy.java:30)
任何想法怎麼辦呢?
它成爲一個全球性的環境(JVM範圍的設置),並從內部網站,外部網站的任何其他連接可能會受到影響,那些沒有代理的情況下運行良好。在JDK 1.5之前設置這些系統參數是唯一的選擇,但是從1.5開始,我們擁有提供更好控制的Proxy類。有關詳情,請參閱以下網址:https://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html – 2017-11-08 17:40:30