java 如何连接远程代理服务器进行数据传输

最近想在自己的web application上flikr接口进行图片的搜素,因此就需要接受flikr所回传给我的json数据,

但是java如果就直接调用URLConnection conn=url.openConnection();这样是肯定不行的啦,因为没法直接访问flikr,那么我们要如何通过java实现代理上网呢?
//首先我们肯定要在链接前先设置代理:
//第一种方法:这种方法是jvm级别的,对所有url请求都有效
System.setProperty("http.proxySet","true");//这句表示让系统使用代理上网
System.setProperty("http.proxyHost","xx.xx.xx.xx");//xx.xx.xx.xx表示你的远程代理主机的ip地址.
System.setProperty("http.proxyPoret","xxxxx");//xxxxx表示是提供代理服务的端口//号(特别注意!!所提供代理服务的端口号指的是本地的提供代理服务所使用的端口号!而不是//远程代理服务器所使用的的端口号!本人花了一个晚上的时间才明白这一点orz).
//接着就和原来一样:
URL url=new URL("http://xxxxxxxxxxxxxx");
URLConnection conn=url.openConnection();
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str=null;
StringBuffer buffer=new StringBuffer();
while((str=buffer.readLine())!=null)
{
	buffer.append(str);
}
System.out.print(buffer.toString());


//第二种:只对单个的url有效(本人目前还没通过此种方法,显示"拒绝链接",不知道错在哪里,望知//道的朋友不吝赐教orz)
Proxy proxy=new Proxy("xx. xx.xx.xx","xxxxx");这里的ip和端口号同上;
URL url=new URL("http://xxxxxxxxx");
URLConnection conn=url.openConnection(proxy);

//下面的就和上面的一样了,拿到输入流后想干什么干什么.
 

相关推荐