我使用MultipartEntityBuilder
上传文件。只需更改文件路径,我就成功上传了.txt
文件,但我无法上传.bin
文件。在使用Wireshark进行调查时,我甚至无法看到.bin
的POST请求。
以下是关键代码:
HttpPost request = new HttpPost(httpURL);
request.addHeader("Content-Type", "multipart/form-data");
request.addHeader("Accept", "multipart/form-data");
File file = new File(filePath);
FileBody fileBody = new FileBody(file, ContentType.MULTIPART_FORM_DATA);
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
multipartEntityBuilder.addPart("upgradeFile", fileBody);
multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
HttpEntity httpEntity = multipartEntityBuilder.build();
request.setEntity(httpEntity);
CloseableHttpResponse response = httpClient.execute(request);
另外,我尝试将ContentType
修改为application/octet-stream
,但它没有用。有人会有一些解决方案吗?谢天谢地。
更新
正如我验证的那样,问题不是文件的类型,而是文件的大小。我尝试了一个6Mb的二进制文件,一个37Mb的二进制文件和一个60Mb的二进制文件,只能上传最小的文件。
事实上,我的程序就像一个网站的模拟器。在真实的网站上,我确实可以上传一个大文件,但我不明白为什么我不能参加我的程序。