Nit*_*hin 4 java connection proxy
我想通过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();
}
}
Run Code Online (Sandbox Code Playgroud)
在尝试运行此代码时,它会引发以下错误:
java.lang.IllegalArgumentException:如果消息头值非法字符(或多个):基本dXNlcl9uYW1lOnBhc3Nfd29yZA ==
在sun.net.www.protocol.http.HttpURLConnection.checkMessageHeader(HttpURLConnection.java:323)
在sun.net.www.protocol. http.HttpURLConnection.setRequestProperty(HttpURLConnection.java:2054)
在test.ConnectThroughProxy.main(ConnectThroughProxy.java:30)
任何想法怎么做?
Cur*_*tis 11
如果您只是尝试通过HTTP代理服务器发出HTTP请求,则不需要付出太多努力.这里有一篇文章:http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html
但它基本上归结为只在命令行或代码中设置http.proxyHost和http.proxyPort环境属性:
// Set the http proxy to webcache.mydomain.com:8080 System.setProperty("http.proxyHost", "webcache.mydomain.com"); System.setProperty("http.proxyPort", "8080"); // Next connection will be through proxy. URL url = new URL("http://java.sun.com/"); InputStream in = url.openStream(); // Now, let's 'unset' the proxy. System.clearProperty("http.proxyHost"); // From now on HTTP connections will be done directly.
归档时间: |
|
查看次数: |
22224 次 |
最近记录: |