HttpURLConnection与HttpClient请求方式解析
求 http 的方式有好几种,用得比较多的就是 HttpURLConnection 和 HttpClient。一个是原生老将,一个是封装强悍的新秀。嗯,各有优势,各有脾气。
HttpURLConnection胜在轻量,适合简单场景,比如写个定时任务去抓个接口数据,用起来还挺省心。不过嘛,写起来稍微啰嗦点,重定向、超时之类的要自己来。
HttpClient就不一样了,功能挺全的,像连接池、自动重试、各种求方法支持都丰富。如果你是做复杂求、登录接口、要 Cookies 那种,HttpClient 就比较合适。
像你要发个 POST 求,HttpClient
配起来就舒服:
HttpPost post = new HttpPost(url);
post.setEntity(new StringEntity(json, ContentType.APPLICATION_JSON));
CloseableHttpResponse response = client.execute(post);
返回的 response
直接就能取状态码、响应体,省不少事。你还可以顺手把 JSON 解析成 Map
,配合 Jackson 或 Gson,效率也不错。
如果你对这块还不是熟,推荐你看看这些资源,都是干货:
- HttpURLConnection 求和 HttpClient 求
- HTTP 求返回状态码全面解析
- httpClient 发送 HTTP 求
- java 使用 HttpClient 发送 http 求
- httpclient 求 http 数据 json 转 map 的实例
如果你在搞接口联调或者做接口中台,HttpClient 真的是个不错的选择。想偷懒一点,就用 HttpURLConnection,不求炫技,求稳就行~
下载地址
用户评论