扩展 Http 请求
默认 Http 客户端
在 IJPay 中是使用 HuTool 中的 Http 客户端工具类 HttpUtil 来实现,此模块基于JDK 的 HttpUrlConnection 封装完成。 HuTool 详细介绍
IJPay 中简单封装
抽象 Http 代理 AbstractHttpDelegate, IJPay 中经常使用到的 HttpKit 工具类。 使用也非常简单以微信支付 API 调用为例
public static String doGet(String url, Map<String, Object> params) {
return HttpKit.getDelegate().get(url, params);
}
public static String doPost(String url, Map<String, String> params) {
return HttpKit.getDelegate().post(url, WxPayKit.toXml(params));
}
public static String doPostSSL(String url, Map<String, String> params, String certPath, String certPass) {
return HttpKit.getDelegate().post(url, WxPayKit.toXml(params), certPath, certPass);
}
public static String doPostSSL(String url, Map<String, String> params, InputStream certFile, String certPass) {
return HttpKit.getDelegate().post(url, WxPayKit.toXml(params), certFile, certPass);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
自定义 Http 客户端
- 继承
AbstractHttpDelegate
重写 http 客户端中相关方法 - 设置新的 Http 客户端使其生效
HttpKit.setDelegate(new xxHttpKit())
public class xxHttpKit extends AbstractHttpDelegate {
@Override
public String get(String url) {
// 替换具体实现
return super.get(url);
}
@Override
public String post(String url, String data) {
// 替换具体实现
return super.post(url, data);
}
@Override
public String post(String url, String data, String certPath, String certPass) {
// 替换具体实现
return super.post(url, data, certPath, certPass);
}
@Override
public String post(String url, Map<String, Object> paramMap) {
// 替换具体实现
return super.post(url, paramMap);
}
@Override
public String post(String url, String data, InputStream certFile, String certPass) {
// 替换具体实现
return super.post(url, data, certFile, certPass);
}
}
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
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
获取异步通知中的数据
在 IJPay 中如何快捷的获取异步通知中的数据呢? 在 HttpKit 中提供了 readData 方法 HttpKit.readData(HttpServletRequest request)