Java怎么设置代理来访问网络?

Propertiesprop=System.getProperties();prop.put("proxySet",true);//HTTP代理的IP设置prop.set... Properties prop = System.getProperties();
prop.put("proxySet",true);
// HTTP代理的IP设置
prop.setProperty("http.proxyHost", "218.145.25.80");
// HTTP代理的端口设置
prop.setProperty("http.proxyPort", "8080");

try {
URL url = new URL("http://20140507.ip138.com/ic.asp");
// 创建代理服务器
// 如果我们知道代理server的名字, 可以直接使用
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
String s = IOUtils.toString(in);
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
这样写为什么不行???
展开
 我来答
samismiling
推荐于2016-10-13 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部
你的问题应该是:在java中通过编程设置代理服务器并访问网络,现在作答如下:

1,讲解一下基础早慎知识:
HTTP:是应用层协议,是基于传输层协议的。
TCP: 是传输层协议,是基于网络层协议的。
IP: 是网络层协议。
一个TCP的连接要进行三次握手(就像转户口一样,不详说),HTTP只是一清弯个应用协议,也就是相当于一个自定义协议,即其没有对底层的传输方式进行干涉,只是对数据内容格式进行了定义。

2,我们再说说HTTP代理,从上可以理解,HTTP代理服务器就是这样一台机器:你把所有的HTTP请求都发到这个 HTTP代理服务器,然后这个HTTP代理服务器请求你要访问的最终地址,把响应回传给你。这里还要注意它代理的是HTTP协议,而HTTP又是基于 TCP的,也就是说这个服务器代理的是指定HTTP内容格式的TCP连接。再说下去也没意思了,看以下代码:
//以下地址是代理服务器的地址
Socket socket = new Socket("10.1.2.188", 80);
//写与的内容就是遵循HTTP请求协议格式的内容,请陆正敬求百度
socket.getOutputStream().write(new String("GET http://www.baidu.com/ HTTP/1.1\r\n\r\n").getBytes());
byte[] bs = new byte[1024];
InputStream is = socket.getInputStream();
int i;
while ((i = is.read(bs)) > 0) {
System.out.println(new String(bs, 0, i));
}
is.close();
3,当然在Java中,有Proxy代理上网的使用,此时使用URL(HTTP)就不涉及Socket(TCP)了,看如下代码
//设置代理
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "10.1.2.188");
System.setProperty("http.proxyPort", "80");

//直接访问目的地址
URL url = new URL("http://www.baidu.com");
URLConnection con = url.openConnection();
InputStreamReader isr = new InputStreamReader(con.getInputStream());
char[] cs = new char[1024];
int i = 0;
while ((i = isr.read(cs)) > 0) {
System.out.println(new String(cs, 0, i));
}
isr.close();
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
丛芷天0E
推荐于2017-11-26 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:66万
展开全部
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
URLConnection conn = url.openConnection(proxy);
(转)

详细升枝答看搭明见此文吵慧
http://blog.csdn.net/redhat456/article/details/6149774
追问
你有可以用的代理地址吗?我测试一下。
追答
公网的代理服务器一般都不是很稳定的。
可以自己装个服务端,起到可以调试的目的就可以了。
比如
http://dl.pconline.com.cn/html_2/1/88/id=913&pn=0.html
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eeb9264
2014-09-27
知道答主
回答量:24
采纳率:0%
帮助的人:10.1万
展开全部
表示不懂。。。。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式