String url = "http://xxxxxxxxxxxxxxx";//服务端要调用的外部接口
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpPost httpPost = new HttpPost(url);
File file = new File(address);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("file", file, ContentType.parse("image/jpeg"), file.getName());
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
// 添加 'accessToken' 请求头 访问需要带token则携带token
httpPost.setHeader("accessToken", accessToken);
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
int statusCode = response.getStatusLine().getStatusCode();
// 打印响应结果
if (statusCode == HttpStatus.SC_OK) {
Gson gson = new Gson();
String resp = EntityUtils.toString(response.getEntity(), "utf-8");
MyResponse myResponse = gson.fromJson(resp, MyResponse.class);
System.out.println("status:" + statusCode);
System.out.println("result:" + resp);
return myResponse.result;
}
System.out.println(response.getStatusLine());
HttpEntity responseEntity = response.getEntity();
EntityUtils.consume(responseEntity);
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
//响应结果体
static class MyResponse {
boolean success;
String message;
int code;
long timestamp;
String result;
}
本文介绍了如何在Java中使用ApacheHttpClient库发送一个带有文件附件的MultipartHTTPPOST请求,并处理服务器响应,包括设置accessToken头和解析返回的JSON数据。
7419

被折叠的 条评论
为什么被折叠?



