java网络代理小策略

最近在实验室中,做一个网络爬搜索,但是电脑用了代理,URLConnection con=url.OpenConnection()连接不到代理上。看了看网络资料,最后问题解决。
java使用网络代理的两种机制:
(1)java中系统环境中的属性设置、
Properties pro=System.getProperties();
pro.setPropert("http.proxyHost","10.3.135.198");//代理主机的ip
pro.setProperty("http.proxyPort","808");//代理主机中http代理端口
还有很多关于ftp,socket代理,都是这样设置,这理就不多解释
(2)通过java.net.Proxy来设置代理上网
InetSocketAddress address=new InetSocketAddress("10.3.135.198",808);
Proxy proxy=new Proxy(Proxy.Type.HTTP,address);
URLConnection connection=url.openConnection(proxy);
其中Proxy.Type.Http用来设置代理类型,所以我们当然可以设置其代理类型


这里可列出了一个异常,我运行时遇到的、
URL url=new URL("http://www.baidu.com");
如果url写成上面的形式,会出现java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at com.start.Test.main(Test.java:34)后来我才发现在浏临览器中我们输入:
www.baidu.com时,系统会帮我们纠正为:
www.baidu.com/这种形式,于是我就改写为:
URL url=new URL("http://www.baiduc.com/");
运行成功

你可能感兴趣的:(java,.net,socket,sun)