请求相关

import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Map; @Component public class HttpClientHelper { // @Autowired private CloseableHttpClient httpClient; // @Autowired private RequestConfig config; /** * 不带参数的get请求,如果状态码为200,则返回body,如果不为200,则返回null * * @param url * @return * @throws Exception */ public String doGet(String url) throws Exception { // 声明 http get 请求 HttpGet httpGet = new HttpGet(url); // 装载配置信息 httpGet.setConfig(config); // 发起请求 CloseableHttpResponse response = this.httpClient.execute(httpGet); // 判断状态码是否为200 if (response.getStatusLine().getStatusCode() == 200) { // 返回响应体的内容 return EntityUtils.toString(response.getEntity(), "UTF-8"); } return null; } /** * 带参数的get请求,如果状态码为200,则返回body,如果不为200,则返回null * * @param url * @return * @throws Exception */ public String doGet(String url, Map<String, Object> map) throws Exception { URIBuilder uriBuilder = new URIBuilder(url); if (map != null) { // 遍历map,拼接请求参数 for (Map.Entry<String, Object> entry : map.entrySet()) { uriBuilder.setParameter(entry.getKey(), entry.getValue().toString()); } } // 调用不带参数的get请求 return this.doGet(uriBuilder.build().toString()); } /** * 带参数的post请求 * * @param url * @param map * @return * @throws Exception */ public HttpResult doPost(String url, Map<String, Object> map) throws Exception { // 声明httpPost请求 HttpPost httpPost = new HttpPost(url); // 加入配置信息 httpPost.setConfig(config); // 判断map是否为空,不为空则进行遍历,封装from表单对象 if (map != null) { List<NameValuePair> list = new ArrayList<NameValuePair>(); for (Map.Entry<String, Object> entry : map.entrySet()) { list.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString())); } // 构造from表单对象 UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(list, "UTF-8"); // 把表单放到post里 httpPost.setEntity(urlEncodedFormEntity); } // 发起请求 CloseableHttpResponse response = this.httpClient.execute(httpPost); HttpResult httpResult =new HttpResult(); httpResult.setCode(response.getStatusLine().getStatusCode()); httpResult.setBody(EntityUtils.toString( response.getEntity(), "UTF-8")); return httpResult; } /** * 不带参数post请求 * * @param url * @return * @throws Exception */ public HttpResult doPost(String url) throws Exception { return this.doPost(url, null); } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章