想用java编写个代理服务器,求具体一些思路,详细一些 , 谢谢在编写代理服务器之前java代理服务代码,首先应该明白一点java代理服务代码,Java的代理机制,如图所示java代理服务代码:
那么Java就处于中间这层代理服务器 , 代理服务器所作的事情如下:
1、接收客户端请求 , 进行处理,然后发送给服务端
2、接收服务端响应,进行处理,然后发送给客户端
这样,就更清晰java代理服务代码了 , Java提供了代理的API为,java.net.Proxy类 。此类表示代理设置 , 通常为类型(http、socks)和套接字地址 。Proxy 是不可变对象 。
也就是说Java可以制作高级协议的代理 , 如 HTTP 或 FTP 。也可以制作SOCKS(V4 或 V5)代理 。
首先 , 使用到了URL类 , HttpURLConnection类及其我们的代理类Proxy类 。java代理服务代码他们都位于java.net包中 。
第一步:生成代理,指定端口为8888:
第二步:使用URLConnection类进行连接
第三步:打开URL , 并且读取HTML源码
JAVA中如何设置代理服务器,取消代理服务器在JAVA中怎么设置代理服务器呢,非常简单
public void setServiceProxy(Config config) {
this.config = config;
System.setProperty("http.proxyHost", config.getProxyHost());
System.setProperty("http.proxyPort", config.getProxyPort());
System.setProperty("https.proxyHost", config.getProxyHost());
System.setProperty("https.proxyPort", config.getProxyPort());
}
然后在每一个HttpUrlConnection请求中,设置代理服务器用户名和密码 , 并进行Base64加密(看你代理服务器的要求 , 可能因代理服务器不同而不同),代码如下
private HttpURLConnection getProxyHttpConnection() throws IOException {
【java代理服务代码 java代理ip】String authorization = config.getProxyUser() + ":"
+ config.getProxyPassword();
URL url = new URL(config.getRequestUrl());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Proxy-Authorization",
"Basic " + Base64.encodeBase64String(authorization.getBytes()));
return conn;
}
如何用java 5分钟实现一个最简单的mysql代理服务器首先,准备开发工具套件,我们并不会引入过多工具包,仅仅需要:
java8
vert.x 3
如果你是用maven做为项目管理工具,请将vert.x 3引入:
1
2
3
4
5
dependency
groupIdio.vertx/groupId
artifactIdvertx-core/artifactId
version3.3.2/version
/dependency
代码实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package
com.maxleap.mysqlproxy;
import
io.vertx.core.AbstractVerticle;
import
io.vertx.core.Vertx;
import
io.vertx.core.logging.Logger;
import
io.vertx.core.logging.LoggerFactory;
import
io.vertx.core.net.NetClient;
推荐阅读
- b站企业账号直播平台,b站 企业号
- python怎么将文件复制粘贴,python 复制文件夹到指定文件夹
- word大文件如何打开,doc文件太大打不开
- 电商记如何卸载,电商记怎么下载
- python的仿射函数 仿射变换matlab代码
- postgresql修改分区命名的简单介绍
- java预警代码空气质量,java预警代码空气质量是多少
- 数据接口调用php php接口调用数据库
- 路由器怎么样去改密码啊,路由器怎么改密码wifi密码