HttpClient4.x工具獲取使用以及Get和Post模擬請求類編寫
方便我們后續進行模擬請求
首先加入依賴
###
~~~
<!-- httpClient4.x相關依賴 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<!-- gson工具,封裝http的時候使用 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
~~~
###
我們再來封裝工具類 利用httpclient去做get和post的模擬請求
###
~~~
package net.xdclass.xdvideo.utils;
import com.google.gson.Gson;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
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.util.EntityUtils;
import java.util.HashMap;
import java.util.Map;
/*
* 封裝http get post
* */
public class HttpUtils {
private static final Gson gson = new Gson();
/*
* get方法
* @param url
* @return
* */
public static Map<String,Object> doGet(String url){
Map<String,Object> map = new HashMap<>();
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000) //連接超時
.setConnectionRequestTimeout(5000)//請求超時
.setSocketTimeout(5000)
.setRedirectsEnabled(true) //允許自動重定向
.build();
HttpGet httpGet = new HttpGet(url);
httpGet.setConfig(requestConfig);
try{
HttpResponse httpResponse = httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode() == 200){
//在Java中,EntityUtils.toString(HttpEntity entity) 是 Apache HttpClient 庫提供的一個實用方法,用于將 HttpEntity 對象轉換為字符串
String jsonResult = EntityUtils.toString( httpResponse.getEntity());
map = gson.fromJson(jsonResult,map.getClass());
}
}catch (Exception e){
e.printStackTrace();
}finally {
try {
httpClient.close();
}catch (Exception e){
e.printStackTrace();
}
}
return map;
}
/**
* 封裝post
* @return
*/
public static String doPost(String url, String data,int timeout){
CloseableHttpClient httpClient = HttpClients.createDefault();
//超時設置
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout) //連接超時
.setConnectionRequestTimeout(timeout)//請求超時
.setSocketTimeout(timeout)
.setRedirectsEnabled(true) //允許自動重定向
.build();
HttpPost httpPost = new HttpPost(url);
httpPost.setConfig(requestConfig);
httpPost.addHeader("Content-Type","text/html; chartset=UTF-8");
if(data != null && data instanceof String){ //使用字符串傳參
StringEntity stringEntity = new StringEntity(data,"UTF-8");
httpPost.setEntity(stringEntity);
}
try{
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
if(httpResponse.getStatusLine().getStatusCode() == 200){
String result = EntityUtils.toString(httpEntity);
return result;
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
httpClient.close();
}catch (Exception e){
e.printStackTrace();
}
}
return null;
}
}
~~~
###

###
- springboot2項目創建
- 分層分包以及資源文件的創建
- Mysql逆向工程效率神器創建domain實體類(DAO層)
- application.properties配置文件自動映射到實體類
- 通過junit單元測試配置文件自動映射到實體類
- 整合Mybatis訪問數據庫和阿里巴巴數據源
- 增刪改查步驟以及細節記錄
- 控制器請求參數的傳遞
- mybatis當中的動態sql語句創建和使用套路
- mybatis當中的分頁插件的使用
- springboot2當中jwt的使用
- 增加統一響應結果類
- 微信登錄之微信開放平臺介紹
- 網站應用微信登錄時序圖解釋說明
- 獲取微信開放平臺掃碼鏈接URL地址
- HttpClient4.x工具獲取使用以及Get和Post模擬請求類編寫
- 配置內網穿透讓微信服務器可以回調到開發環境地址
- 獲取微信access_token以及openid進而獲取用戶信息
- 保存微信用戶信息的注意點
- 保存完微信用戶信息之后生成jwt返回前端
- springboot2登陸攔截器
- 微信支付前期資料說明
- 訂單的增刪改查Dao層編寫
- 單元測試的實現步驟
- UUID生成和MD5加密工具類編寫
- xml轉map map轉xml以及簽名sign算法工具類
- 下單生成sign簽名以及xml整體流程代碼實現一
- 調用微信統一下單接口獲取相應map拿到二維碼地址
- 二維碼地址轉換為圖片讓用戶掃碼支付
- 微信回調處理之更新訂單狀態和冪等性講解
- springboot當中開啟事務
- 定義全局異常類
- 項目當中Logback或者log4j增加打點日志
- 前后端聯調注意事項
- springboot當中解決跨域問題
- 打包以及后臺運行以及前端部署
- 多節點集群部署