停下脚步才注意到 世界被染得雪白
在日常开发的时候,经常会遇到需要调用别人的接口的场景。但是每次需要的时候,都需要百度,很麻烦,所以这里总结一下,经常调用的方法。
1.含有文件的post请求
public static String requestOCRForHttp(String url, Map<String, String> requestParams, String filePathAndName)
throws Exception {
String result = null;
CloseableHttpClient httpClient = HttpClients.createDefault();
/** HttpPost */
HttpPost httpPost = new HttpPost(url);
MultipartEntity reqEntity = new MultipartEntity(); // 建立多文件实例
FileBody filebody = new FileBody(new File(filePathAndName));
reqEntity.addPart("pic", filebody);// upload为请求后台的File upload;
for (String key : requestParams.keySet()) {
String value = requestParams.get(key);
reqEntity.addPart(key, new StringBody(value, Charset.forName("utf-8")));
}
httpPost.setEntity(reqEntity); // 设置实体
/** HttpResponse */
CloseableHttpResponse httpResponse = httpClient.execute(httpPost);
try {
HttpEntity httpEntity = httpResponse.getEntity();
result = EntityUtils.toString(httpEntity, "utf-8");
EntityUtils.consume(httpEntity);
} finally {
try {
if (httpResponse != null) {
httpResponse.close();
}
} catch (IOException e) {
logger.info("## release resouce error ##" + e);
}
}
return result;
}
2.单纯的Json
public static String sendHttpPost(String url, String JSONBody) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json");
httpPost.setEntity(new StringEntity(JSONBody));
CloseableHttpResponse response = httpClient.execute(httpPost);
// System.out.println(response.getStatusLine().getStatusCode() + "\n");
HttpEntity entity = response.getEntity();
String responseContent = EntityUtils.toString(entity, "UTF-8");
// System.out.println(responseContent);
response.close();
httpClient.close();
return responseContent;
}
3.String参数
public static String requestOCRForHttp(String url, Map<String, String> requestParams) throws Exception {
String result = null;
CloseableHttpClient httpClient = HttpClients.createDefault();
/** HttpPost */
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>();
Iterator<Entry<String, String>> it = requestParams.entrySet().iterator();
// System.out.println(params.toString());
while (it.hasNext()) {
Entry<String, String> en = it.next();
String key = en.getKey();
String value = en.getValue();
if (value != null) {
params.add(new BasicNameValuePair(key, value));
}