-
大小: 18KB文件類型: .java金幣: 1下載: 0 次發(fā)布日期: 2021-05-20
- 語言: Java
- 標(biāo)簽: restful??遠(yuǎn)程調(diào)用??工具類??
資源簡介
Http請求Restful風(fēng)格的遠(yuǎn)程調(diào)用,在遠(yuǎn)程調(diào)用的過程中會出現(xiàn)四種請求方式,這個工具把此部分代碼給封裝了一下。
代碼片段和文件信息
package?com.dmsdbj.library.app.util;
import?com.fasterxml.jackson.databind.objectMapper;
import?org.apache.commons.lang3.StringUtils;
import?java.io.*;
import?java.net.HttpURLConnection;
import?java.net.URL;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
/**
?*?RestfulApi請求工具
?*?使用說明
?*?@author?lnk
?*/
?public?class?RestfulHttpClient?{
????/**?全局默認(rèn)請求頭?*/
????private?static?final?Map?defaultHeaders?=?new?HashMap<>();
????/**?全局默認(rèn)請求頭?*/
????private?static?List?initializers;
????private?static?final?String?charset?=?“UTF-8“;
????private?static?final?int?readTimeout?=?60000;
????private?static?final?int?connectTimeout?=?60000;
????public?static?final?String?METHOD_GET?=?“GET“;
????public?static?final?String?METHOD_POST?=?“POST“;
????public?static?final?String?METHOD_PUT?=?“PUT“;
????public?static?final?String?METHOD_PATCH?=?“PATCH“;
????public?static?final?String?METHOD_DELETE?=?“DELETE“;
????private?RestfulHttpClient(){?}
????/**
?????*?發(fā)起請求
?????*?@param?method????????請求方式:GET、POST、PUT、PATCH、DELETE
?????*?@param?url???????????請求url
?????*?@param?body??????????請求體body
?????*?@throws?IOException
?????*/
????public?static?HttpResponse?request(String?method?String?url?object?body)?throws?IOException?{
????????return?request(method?url?body?defaultHeaders);
????}
????/**
?????*?發(fā)起請求
?????*?@param?method????????請求方式:GET、POST、PUT、PATCH、DELETE
?????*?@param?url???????????請求url
?????*?@param?body??????????請求體body
?????*?@param?headers???????請求頭
?????*?@throws?IOException
?????*/
????public?static?HttpResponse?request(String?method?String?url?object?body?Map?headers)?throws?IOException?{
????????return?getClient(url).method(method).body(body).headers(headers).request();
????}
????/**
?????*?獲取請求客戶端
?????*?@param?url
?????*?@return
?????*/
????public?static?HttpClient?getClient(String?url){
????????return?new?HttpClient(url);
????}
????/**
?????*?添加全局請求連接初始化器
?????*?@param?initializer
?????*/
????public?static?void?addInitializer(URLConnectionInitializer?initializer){
????????if(initializer?==?null){
????????????throw?new?NullPointerException(“不能添加空的連接初始化器“);
????????}
????????if(initializers?==?null){
????????????initializers?=?new?ArrayList<>();
????????}
????????initializers.add(initializer);
????}
????/**
?????*?請求客戶端
?????*/
????public?static?class?HttpClient{
????????private?Map?headers;
????????private?int?readTimeout?=?RestfulHttpClient.readTimeout;
????????private?int?connectTimeout?=?RestfulHttpClient.connectTimeout;
????????private?String?method?=?METHOD_GET;
????????private?String?url;
????????private?Map?pathParams;
????????private?Map?queryParams;
????????private?Map?postParams;
????????priv
評論
共有 條評論