Skip to content

Commit

Permalink
🎨 修复发送文件上传请求时Content-Type没有boundary的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
ChenJiaXin520 committed May 21, 2024
1 parent 08c730e commit 686d424
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,7 @@ public WxMpMaterialUploadResult execute(String uri, WxMpMaterial material, WxTyp
multipartEntityBuilder.addPart("description",
new StringBody(WxGsonBuilder.create().toJson(form), ContentType.create("text/plain", Consts.UTF_8)));
}

httpPost.setEntity(multipartEntityBuilder.build());
//手动设置的Content-Type请求头没有boundary,是一个非标准的文件上传请求头,虽然微信提供了对这类非标准请求的支持,但如果请求需要先经过我们的tomcat server,那么都会报错:the request was rejected because no multipart boundary was found
//不设置Content-Type请求头,httpclient将会自动设置,值为entity的getContentType方法返回值。MultipartEntityBuilder的getContentType方法将会返回boundary
//httpPost.setHeader("Content-Type", ContentType.MULTIPART_FORM_DATA.toString());

try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ public WxMediaImgUploadResult execute(String uri, File data, WxType wxType) thro
.setMode(HttpMultipartMode.RFC6532)
.build();
httpPost.setEntity(entity);
httpPost.setHeader("Content-Type", ContentType.MULTIPART_FORM_DATA.toString());

try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ public Boolean execute(String uri, File data, WxType wxType) throws WxErrorExcep
.setMode(HttpMultipartMode.RFC6532)
.build();
httpPost.setEntity(entity);
httpPost.setHeader("Content-Type", ContentType.MULTIPART_FORM_DATA.toString());

try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
Expand Down

0 comments on commit 686d424

Please sign in to comment.