开发环境
基于 JAVA-8,HttpClient-4.5.2 开发,源码地址见 HttpUtils.java
发送 Http 请求
工具类提供了常用的 GET,POST,PUT,DELETE 方法请求
1 2 3 4 5 6 7 8
| HttpUtils.get("http://www.duitang.com")... HttpUtils.put("http://www.duitang.com")... HttpUtils.post("http://www.duitang.com")... HttpUtils.delete("http://www.duitang.com")...
|
可选配置项
以下 set 方法都是可选的配置项,下面设定的都是它们的原始默认数值。
1 2 3 4 5 6 7 8 9 10 11
| HttpUtils.get("http://www.duitang.com") .setConnectTimeoutSecond(60) .setReadTimeoutSecond(120) .setRetryTimes(3) .setReadResultCharset("UTF-8") ...
|
设置代理
通过 setProxy(host, port, schema) 可设置代理,schema 的可选值为 http 或 https,默认为 http。若为 HTTP 的代理,可直接通过调用 setProxy(host, port) 来设置代理。
1 2 3 4 5
| HttpUtils.get("http://www.duitang.com") .setProxy("122.96.59.106", 80, "http") ...
|
设置请求参数
通过 addParam(String, Object) 可设置请求的参数
1 2 3 4 5
| HttpUtils.get("http://www.duitang.com/search/") .addParam("type", "feed").addParam("kw", "插画") ...
|
或者通过 setParams(Object…) 来设置请求的参数
1 2 3 4 5
| HttpUtils.get("http://www.duitang.com/search/") .setParams("type", "feed", "kw", "插画") ...
|
或者通过 setParams(Map) 来设置请求的参数
1 2 3 4 5 6 7 8 9
| Map<String, Object> params = new HashMap<>(); params.put("type", "feed"); params.put("kw", "插画"); HttpUtils.get("http://www.duitang.com/search/") .setParams(params) ....
|
JSON 参数的请求可以通过 setBody(String) 来设置
1 2 3 4 5
| HttpUtils.get("http://www.duitang.com/search/") .setBody("{\"kw\":\"插画\",\"type\":\"feed\"}") ...
|
设置请求头参数
请求头参数的设值与请求参数的设值相似,如:
1 2 3 4 5
| HttpUtils.get("http://www.duitang.com") .setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0") ...
|
执行 HTTP 请求
通过调用 execute(BiConsumer<Integer, String>) 方法来执行 HTTP 请求。
其中,第一个参数为 HTTP 请求结果的状态码值,第二个参数为 HTTP 请求结果的文本内容。一个完整的示例:
1 2 3 4 5 6 7
| HttpUtils.get("http://www.duitang.com").execute((status, response) -> { if (status == 200) { System.out.println(response); } else { System.out.println("--- 请求失败 ---"); } });
|