“HttpClient 工具类”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
Jihongchang(讨论 | 贡献)  (建立内容为“https://www.bilibili.com/video/BV1AN411Z7mx?p=12”的新页面)  | 
				Jihongchang(讨论 | 贡献)   | 
				||
| 第1行: | 第1行: | ||
https://www.bilibili.com/video/BV1AN411Z7mx?p=12  | https://www.bilibili.com/video/BV1AN411Z7mx?p=12  | ||
| + | |||
| + | === pom.xml ===  | ||
| + | <syntaxhighlight lang="xml">  | ||
| + |         <dependency>  | ||
| + |             <groupId>org.apache.httpcomponents</groupId>  | ||
| + |             <artifactId>httpclient</artifactId>  | ||
| + |             <version>4.5.10</version>  | ||
| + |         </dependency>  | ||
| + | </syntaxhighlight>  | ||
| + | |||
| + | === HttpClientUtil.java ===  | ||
| + | <syntaxhighlight lang="java">  | ||
| + | import org.apache.http.NameValuePair;  | ||
| + | import org.apache.http.client.ClientProtocolException;  | ||
| + | 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.entity.ContentType;  | ||
| + | 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 org.apache.http.util.EntityUtils;  | ||
| + | |||
| + | import java.io.IOException;  | ||
| + | import java.io.UnsupportedEncodingException;  | ||
| + | import java.net.URI;  | ||
| + | import java.net.URISyntaxException;  | ||
| + | import java.util.ArrayList;  | ||
| + | import java.util.List;  | ||
| + | import java.util.Map;  | ||
| + | |||
| + | public class HttpClientUtil {  | ||
| + | |||
| + |     public static String doGet(String url, Map<String, String> param) {  | ||
| + |         // 创建Httpclient 对象  | ||
| + |         CloseableHttpClient httpclient = HttpClients.createDefault();  | ||
| + | |||
| + |         String resultString = "";  | ||
| + |         CloseableHttpResponse response = null;  | ||
| + | |||
| + |         try {  | ||
| + |             // 创建uri  | ||
| + |             URIBuilder builder = new URIBuilder(url);  | ||
| + |             if (param != null) {  | ||
| + |                 for (String key : param.keySet()) {  | ||
| + |                     builder.addParameter(key, param.get(key));  | ||
| + |                 }  | ||
| + |             }  | ||
| + |             URI uri = builder.build();  | ||
| + | |||
| + |             // 创建 HTTP GET 请求  | ||
| + |             HttpGet httpGet = new HttpGet(uri);  | ||
| + | |||
| + |             //执行请求  | ||
| + |             response = httpclient.execute(httpGet);  | ||
| + | |||
| + |             //判断返回状态是否为 200  | ||
| + |             if (response.getStatusLine().getStatusCode() == 200) {  | ||
| + | |||
| + |                 resultString = EntityUtils.toString(response.getEntity(), "UTF-8");  | ||
| + | |||
| + |             }  | ||
| + | |||
| + |         } catch (Exception e) {  | ||
| + |             e.printStackTrace();  | ||
| + | |||
| + |         } finally {  | ||
| + | |||
| + |             try {  | ||
| + |                 if (response != null) {  | ||
| + |                     response.close();  | ||
| + |                 }  | ||
| + |                 httpclient.close();  | ||
| + |             } catch (IOException e) {  | ||
| + |                 e.printStackTrace();  | ||
| + |             }  | ||
| + |             return resultString;  | ||
| + |         }  | ||
| + |     }  | ||
| + | |||
| + | |||
| + |     public static String doGet(String url) {  | ||
| + |         return doGet(url, null);  | ||
| + |     }  | ||
| + | |||
| + |     public static String doPost(String url, Map<String, String> param) {  | ||
| + |         // 创建 Httpclient 对象  | ||
| + |         CloseableHttpClient httpClient = HttpClients.createDefault();  | ||
| + |         CloseableHttpResponse response = null;  | ||
| + |         String resultString = "";  | ||
| + |         try {  | ||
| + |             // 创建 Http Post 请求  | ||
| + |             HttpPost httpPost = new HttpPost(url);  | ||
| + |             // 创建参数列表  | ||
| + |             if (param != null) {  | ||
| + |                 List<NameValuePair> paramList = new ArrayList<>();  | ||
| + |                 for (String key : param.keySet()) {  | ||
| + |                     paramList.add(new BasicNameValuePair(key, param.get(key)));  | ||
| + |                 }  | ||
| + | |||
| + |                 // 模拟表单  | ||
| + |                 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, "UTF-8");  | ||
| + |                 httpPost.setEntity(entity);  | ||
| + |             }  | ||
| + | |||
| + |             // 执行 HTTP 请求  | ||
| + |             response = httpClient.execute(httpPost);  | ||
| + | |||
| + |             resultString = EntityUtils.toString(response.getEntity(), "UTF-8");  | ||
| + | |||
| + |         } catch (Exception e) {  | ||
| + |             e.printStackTrace();  | ||
| + |         } finally {  | ||
| + | |||
| + |             try {  | ||
| + |                 response.close();  | ||
| + |             } catch (IOException e) {  | ||
| + |                 e.printStackTrace();  | ||
| + |             }  | ||
| + | |||
| + |         }  | ||
| + | |||
| + |         return resultString;  | ||
| + | |||
| + |     }  | ||
| + | |||
| + | |||
| + |     public static String doPost(String url) {  | ||
| + |         return doPost(url, null);  | ||
| + |     }  | ||
| + | |||
| + |     public static String doPostJson(String url, String json) {  | ||
| + |         // 创建 Httpclient 对象  | ||
| + |         CloseableHttpClient httpClient = HttpClients.createDefault();  | ||
| + |         CloseableHttpResponse response = null;  | ||
| + |         String resultString = "";  | ||
| + | |||
| + |         //执行 http 请求  | ||
| + |         try {  | ||
| + |             //创建 Http Post 请求  | ||
| + |             HttpPost httpPost = new HttpPost(url);  | ||
| + | |||
| + |             //创建请求内容  | ||
| + |             StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);  | ||
| + |             httpPost.setEntity(entity);  | ||
| + |             response = httpClient.execute(httpPost);  | ||
| + |             resultString = EntityUtils.toString(response.getEntity(), "UTF-8");  | ||
| + |         } catch (IOException e) {  | ||
| + |             e.printStackTrace();  | ||
| + | |||
| + |         } finally {  | ||
| + | |||
| + |             try {  | ||
| + |                 response.close();  | ||
| + |             } catch (IOException e) {  | ||
| + |                 e.printStackTrace();  | ||
| + |             }  | ||
| + |         }  | ||
| + | |||
| + |         return resultString;  | ||
| + | |||
| + |     }  | ||
| + | |||
| + | }  | ||
| + | </syntaxhighlight>  | ||
2023年3月27日 (一) 04:44的版本
https://www.bilibili.com/video/BV1AN411Z7mx?p=12
pom.xml
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.10</version>
        </dependency>
HttpClientUtil.java
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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.entity.ContentType;
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 org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class HttpClientUtil {
    public static String doGet(String url, Map<String, String> param) {
        // 创建Httpclient 对象
        CloseableHttpClient httpclient = HttpClients.createDefault();
        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            // 创建uri
            URIBuilder builder = new URIBuilder(url);
            if (param != null) {
                for (String key : param.keySet()) {
                    builder.addParameter(key, param.get(key));
                }
            }
            URI uri = builder.build();
            // 创建 HTTP GET 请求
            HttpGet httpGet = new HttpGet(uri);
            //执行请求
            response = httpclient.execute(httpGet);
            //判断返回状态是否为 200
            if (response.getStatusLine().getStatusCode() == 200) {
                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (response != null) {
                    response.close();
                }
                httpclient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return resultString;
        }
    }
    public static String doGet(String url) {
        return doGet(url, null);
    }
    public static String doPost(String url, Map<String, String> param) {
        // 创建 Httpclient 对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        try {
            // 创建 Http Post 请求
            HttpPost httpPost = new HttpPost(url);
            // 创建参数列表
            if (param != null) {
                List<NameValuePair> paramList = new ArrayList<>();
                for (String key : param.keySet()) {
                    paramList.add(new BasicNameValuePair(key, param.get(key)));
                }
                // 模拟表单
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, "UTF-8");
                httpPost.setEntity(entity);
            }
            // 执行 HTTP 请求
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultString;
    }
    public static String doPost(String url) {
        return doPost(url, null);
    }
    public static String doPostJson(String url, String json) {
        // 创建 Httpclient 对象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = null;
        String resultString = "";
        //执行 http 请求
        try {
            //创建 Http Post 请求
            HttpPost httpPost = new HttpPost(url);
            //创建请求内容
            StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
            httpPost.setEntity(entity);
            response = httpClient.execute(httpPost);
            resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultString;
    }
}