前言
服务器出于安全或者资源有限在局域网内没有直接连接到Internet网络,不能直接通过java.net.URL定位网络资源时,我们需要通过设置java.net.URL指定代理服务器来进行代理上网。
代码示例
1.示例局域网不能上网的服务器先需要访问xwood首页地址,通过借助于局域网172.168.1.8主机(可以有网络访问权限)进行访问上网,在设置代理之前首先确保在172.168.1.8上面运行有代理服务器(如ccproxy,点击下载),并提前配置好代码端口,如下图所示
2.下面代码为服务器端代理访问测试代码,具体如下:
import java.io.IOException;@b@import java.io.InputStream;@b@import java.net.MalformedURLException;@b@import java.net.URL;@b@import java.net.URLConnection;@b@import java.util.Properties;@b@@b@public class TestUrlProxy {@b@ public static void main(String[] args) {@b@ // TODO Auto-generated method stub@b@ String xwoodURL="http://www.xwood.net/index.html";@b@ //获取系统属性集合@b@ Properties prop=System.getProperties();@b@ //设置代理服务器地址@b@ prop.put("http.proxyHost", "172.168.1.8");@b@ //设置代理服务器端口@b@ prop.put("http.proxyPort", "808");@b@ try {@b@ URL url=new URL(xwoodURL);@b@ URLConnection conn;@b@ conn = url.openConnection();@b@ conn.connect();@b@ //获取网络资源大小@b@ System.out.println(conn.getContentLength());@b@ //获取网络资源的输入流读取信息@b@ InputStream is=conn.getInputStream();@b@ System.out.println("c:"+is.read());@b@ is.close();@b@ } catch (MalformedURLException e) {@b@ // TODO Auto-generated catch block@b@ e.printStackTrace();@b@ }catch (IOException e) {@b@ // TODO Auto-generated catch block@b@ e.printStackTrace();@b@ }@b@ }@b@@b@}