java 发送 HTTP 请求
一.发送 HTTP GET 请求
import org.apache.commons.lang.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.apache.http.HttpResponse; /** * 发送 HTTP GET 请求 * * @param url * @return */ public String httpGet(String url) { String result = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); // HttpClient CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); HttpGet httpGet = null; HttpResponse httpResponse = null; HttpEntity httpEntity = null; httpGet = new HttpGet(url); try { httpResponse = closeableHttpClient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { httpEntity = httpResponse.getEntity(); if (httpEntity != null) { result = EntityUtils.toString(httpEntity); } } // 关闭连接 closeableHttpClient.close(); } catch (IOException e) { logger.error(e.getMessage(), e); } return result; } /** * 执行一个HTTP GET请求,返回请求响应的HTML * * @param url * 请求的URL地址 * @param queryString * 请求的查询参数,可以为null * @return 返回请求响应的HTML */ public String doGet(String url, String queryString) { String result = ""; HttpClient client = new HttpClient(); HttpMethod method = new GetMethod(url); try { if (StringUtils.isNotBlank(queryString)) method.setQueryString(URIUtil.encodeQuery(queryString)); client.executeMethod(method); if (method.getStatusCode() == HttpStatus.SC_OK) { result = method.getResponseBodyAsString(); } } catch (IOException e) { logger.error(e.getMessage(), e); } finally { method.releaseConnection(); } return result; }
二.发送HTTP POST 请求
import org.apache.commons.lang.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.apache.http.HttpResponse; /** * 发送POST请求 * @return * @throws IOException */ private static String httpPost(String url,String condition) throws IOException { String result = ""; // 创建HttpClientBuilder HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); CloseableHttpClient closeableHttpClient = null; CloseableHttpResponse closeableHttpResponse = null; HttpEntity httpEntity = null; HttpPost httpPost = new HttpPost(builderUrl.toString()); StringEntity stringEntity = null; try { // 添加http头信息 stringEntity = new StringEntity(condition, "utf-8");// 解决中文乱码问题 stringEntity.setContentEncoding("UTF-8"); stringEntity.setContentType("application/json"); httpPost.setEntity(stringEntity); closeableHttpClient = httpClientBuilder.build(); closeableHttpResponse = closeableHttpClient.execute(httpPost); if (closeableHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { httpEntity = closeableHttpResponse.getEntity(); if (httpEntity != null) { result = EntityUtils.toString(httpEntity); } } closeableHttpResponse.close(); // 关闭连接 closeableHttpClient.close(); } catch (IOException e) { logger.error(e.getMessage(), e); throw e; } return result; }