Java

来源:互联网 发布:如何登陆阿里云服务器 编辑:程序博客网 时间:2024/05/17 01:25

Java后台经常要发送http请求,就需要用到HttpClient工具,因为目前的技术有限,所以只简单的封装了一个HttpClient的工具类,在以后的使用过程中,我会不断的完善和更新该工具类.

下面附上代码

maven依赖

<dependency>    <groupId>org.apache.httpcomponents</groupId>    <artifactId>httpclient</artifactId>    <version>4.5.2</version></dependency>
工具类

package com.xiaohh.util;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;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.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import java.io.*;import java.nio.charset.Charset;import java.util.*;/** * httpClient 工具类 */public class HttpClientUtil {    private HttpClientUtil() {}    public static HttpClientUtil getInstance() {        return new HttpClientUtil();    }    /**     * 发送get请求     * @param url 请求地址     * @return 服务器响应字符串     */    public String sendGetRequest(String url) {        CloseableHttpClient httpClient = HttpClients.createDefault();        HttpGet httpGet = new HttpGet(url.trim());        StringBuilder result = new StringBuilder();        try {            CloseableHttpResponse response = httpClient.execute(httpGet);            HttpEntity entity = response.getEntity();            InputStream inputStream = entity.getContent();            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));            String line = null;            while((line = bufferedReader.readLine()) != null) {                result.append(line);            }            inputStream.close();            bufferedReader.close();            response.close();            httpClient.close();        } catch (IOException e) {            e.printStackTrace();        }        return result.toString();    }    /**     * 发送post_form请求     * @param url 请求地址     * @param data 请求参数     * @return 服务器响应字符串     */    public String sendPostFormRequest(String url, Map<String, String> data) {        CloseableHttpClient httpClient = HttpClients.createDefault();        HttpPost httpPost = new HttpPost(url.trim());        List<NameValuePair> params = new ArrayList<NameValuePair>();        StringBuilder result = new StringBuilder();        for(Map.Entry<String, String> entry : data.entrySet()) {            String key = entry.getKey();            String value = entry.getValue();            params.add(new BasicNameValuePair(key, value));        }        try {            UrlEncodedFormEntity urlEntity = new UrlEncodedFormEntity(params, "utf-8");            httpPost.setEntity(urlEntity);            CloseableHttpResponse response = httpClient.execute(httpPost);            HttpEntity entity = response.getEntity();            InputStream inputStream = entity.getContent();            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));            String line = null;            while((line = bufferedReader.readLine()) != null) {                result.append(line);            }            inputStream.close();            bufferedReader.close();            response.close();            httpClient.close();        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result.toString();    }    /**     * 发送post请求     * @param url 请求地址     * @param json 请求字符串     * @return 服务器响应字符串     */    public String sendPostRequest(String url, String json) {        CloseableHttpClient httpClient = HttpClients.createDefault();        HttpPost httpPost = new HttpPost(url.trim());        StringBuilder result = new StringBuilder();        httpPost.setHeader("Content-type", "application/json; charset=utf-8");        StringEntity urlEntity = new StringEntity(json, Charset.forName("UTF-8"));        urlEntity.setContentEncoding("UTF-8");        urlEntity.setContentType("application/json");        httpPost.setEntity(urlEntity);        try {            httpPost.setEntity(urlEntity);            CloseableHttpResponse response = httpClient.execute(httpPost);            HttpEntity entity = response.getEntity();            InputStream inputStream = entity.getContent();            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));            String line = null;            while((line = bufferedReader.readLine()) != null) {                result.append(line);            }            inputStream.close();            bufferedReader.close();            response.close();            httpClient.close();        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return result.toString();    }}