更新時(shí)間:2022-11-23 08:57:21 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3063次
通過
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
生成HttpEntity,然后再設(shè)置到HttpPost中。具體實(shí)現(xiàn)如下
httpPostForm
/**
* 模擬from表單提交
*
* @param url url地址
* @param paramList 參數(shù)
* @param headers 請求頭
* @return
*/
public static JSONObject httpPostForm(String url, HttpEntity httpEntity , Map<String, String> headers) {
// post請求返回結(jié)果
CloseableHttpClient httpClient = HttpClients.createDefault();
JSONObject jsonResult = null;
HttpPost httpPost = new HttpPost(url);
// 設(shè)置請求和傳輸超時(shí)時(shí)間
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(10000).setConnectTimeout(10000).build();
httpPost.setConfig(requestConfig);
if (!headers.isEmpty()) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
httpPost.setHeader(entry.getKey(), entry.getValue());
}
}
try {
if (null != paramList ) {
// 解決中文亂碼問題
httpPost.setEntity(paramList);
}
CloseableHttpResponse result = httpClient.execute(httpPost);
String resultString = EntityUtils.toString(result.getEntity(), "utf-8");
logger.info(result);
//請求發(fā)送成功,并得到響應(yīng)
try {
//把json字符串轉(zhuǎn)換成json對象
jsonResult = JSONObject.parseObject(resultString);
} catch (Exception e) {
logger.error("post請求提交失敗:" + url, e);
}
} catch (IOException e) {
logger.error("post請求提交失敗:" + url, e);
} finally {
httpPost.releaseConnection();
}
return jsonResult;
}
參數(shù)調(diào)用方式
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
//當(dāng)需要傳入list結(jié)構(gòu)的表單數(shù)據(jù)的時(shí)候直接重名即可,如下面的“to”
multipartEntityBuilder.addPart("to", new StringBody("A", ContentType.TEXT_PLAIN));
multipartEntityBuilder.addPart("to", new StringBody("B", ContentType.TEXT_PLAIN));
multipartEntityBuilder.addPart("cc", new StringBody("C", ContentType.TEXT_PLAIN));
HttpEntity build = multipartEntityBuilder.build();
JSONObject jsonObject = HttpUtil.httpPostForm( "www.baidu.com", build, header);
相關(guān)閱讀

初級 202925

初級 203221

初級 202629

初級 203743