Java中怎样在程序中设置代理服务器

展开全部你的问题应该是:在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/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("");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();