Java通过代理server上网
完整代码
package com.proj.net; //导入编码的jar文件
import it.sauronsoftware.base64.Base64; import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL; /**
* 非常多公司会对网上进行限制,要通过代理server和口令才干连接外网。 <br>
* 这样的方式有非常多优点:<br>
* 1、安全。代理server像一层过滤层;<br>
* 2、节省成本,仅仅须要分配非常少的IP地址就可以;<br>
* 3、对员工上网能够个性化配置,避免有人下载大量数据而造成网络拥堵不堪。<br>
*
* 本文通过一个小案例来介绍怎样在程序里跨过局域网訪问外网。 <br>
* 对于搞网络开发的人来说。不值一提;但对于做JAVA EE应用开发的人来说,能够參考。<br>
*
* @author 王一洋
*
* 2014-10-30
* */
public class Test {
public static void main(String[] args) {
try {
//两种方式设置代理server
//设置代理1
//Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("", 80));
//设置代理2
System.getProperties().setProperty( "http.proxyHost", ""); System.getProperties().setProperty( "http.proxyPort", "" ); String urlString = "http://blog.csdn.net/";
URL url = new URL(urlString);
//相应第一种设置方式
//HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(proxy); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(1000);
//设置User Agent
urlConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//设置訪问的username与password
urlConnection.setRequestProperty( "Proxy-Authorization", "Basic" + Base64.encode("username:password") );
urlConnection.connect();
System.out.print(urlConnection.getResponseCode());
BufferedInputStream bis = new BufferedInputStream(urlConnection.getInputStream());
InputStreamReader isr = new InputStreamReader(bis,"UTF-8");
BufferedReader bufferedReader = new BufferedReader(isr);
String str = "";
StringBuffer buffer = new StringBuffer("");
while((str = bufferedReader.readLine())!=null){
buffer.append(str+"\r\n");
}
System.out.println(buffer);
} catch (Exception e) {
e.printStackTrace();
}
}
}
返回code:200,OK!
异常Server returned HTTP response code: 403
for URL
在url.openConnection()后加入:
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
Java通过代理server上网的更多相关文章
- JAVA如何设置代理server,s取消代理erver
1.一个简短的引论 代理server(Proxy Server)是一种重要的server安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用. 代理server大多被用来连 ...
- 通过设置代理,解决服务器禁止抓取,报“java.io.IOException: Server returned HTTP response code: 403 for URL”错误的方法
java.io.IOException: Server returned HTTP response code: 403 for URL: http:// 这个是什么异常呢? 当你使用java程序检索 ...
- 计算机网络--http代理server的设计与实现
一.Socket编程的client和服务端的主要步骤: Java Socket编程:对于http传输协议 client: 1.创建新的socket,绑定serverhost和port号 2.Socke ...
- java动态代理技术
主要用来做方法的增强.让你能够在不改动源代码的情况下,增强一些方法,在方法运行前后做不论什么你想做的事情(甚至根本不去运行这种方法).由于在InvocationHandler的invoke方法中,你能 ...
- 代理server的概要知识
技术支持请留言:http://www.lcpower.cn 一.什么是代理server? 代理server英文全称是Proxy Server.其功能就是代理网络用户去取得网络信息.形象的说:它是网络信 ...
- linux杂谈(十三):代理server
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/linux_player_c/article/details/24707457 1.代理server的 ...
- PCB 利用nginx正向代理实现上网
在PCB行业中,为了保证服务器的安全性,服务器正常都是需要与外网断开的,如果想在服务器通过浏览器下载一点东西是不行.通常作法是在一台可以上网的电脑下载文件,接着放到网络盘上,再从网络盘拷贝到服务器上. ...
- 代理server的理解(1):Windows环境下的代理server设置
浏览器中的代理server设置 Windows系统接口提供的代理server设置是一个全局的代理server的设置,如图所看到的,这里就不多解释: 各个浏览器在使用代理设置的时候,能够主动地获代替理设 ...
- 反向代理:是指以代理server来接收Internet上的请求,然后将请求转发到内部网络的server上,并将结果返回给Internet上连接的client,此时的代理server对外就表现为反向代理server。
Nginx安装好之后.開始使用它来简单实现反向代理与负载均衡的功能.在这之前.首先得脑补一下什么是反向代理和负载均衡. 反向代理:是指以代理server来接收Internet上的请求,然后将 ...
随机推荐
- linux下文件加密压缩和解压的方法
一.用tar命令 对文件加密压缩和解压 压缩:tar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 此命 ...
- Content-Language:en-US
工作的时候遇到需要把 Content-Language:en-US 改为 zh-CN 今天发现我们网站的页面Response Headers部分的语言显示为英语,Content-Language:en ...
- MyEclipse过期激活方法
如果已经过期会提示,进行购买.重新激活和退出,我们选择重新激活. 打开浏览器,地址栏输入key.858game.com,然后输入名称,在线获得MyEclipse的激活码. 输入Sumscripter: ...
- capitalize()在Python中含义
Python为string对象提供了转换大小写的方法:upper() 和 lower(). 还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法, 以及所有单词首字 ...
- 开源网站管理工具—Altman
0×00前言 之前用过几款webshell工具,有B/C的也有C/S的,有的只能用于php或者aspx,当然个人用得最多.觉得用得舒服的也只有菜刀了. 但是毕竟菜刀是好几年之前的产物了,而且也已经停止 ...
- ANDROID_MARS学习笔记_S05_005_方向传感器
import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import ...
- Delphi xe10下载(包含破解补丁和破解视频)
软件名称:RAD Studio 10 Seattle软件大小:7.18 GB RAD Studio 10 Seattle官方下载地址:http://altd.embarcadero.com/downl ...
- Android Studio 打包及引用 aar
Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依 ...
- svn提交时强制注释
不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范.有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢? 利用svn的pre-commi ...
- python 实现对象模型
# -*- coding:utf-8 -*- """ python 实现对象模型 创建 bmicalcpage 类 """ class bm ...