为了账号安全,请及时绑定邮箱和手机立即绑定

没有从 HttpClient 获得完整的 HTTP 响应

没有从 HttpClient 获得完整的 HTTP 响应

江户川乱折腾 2021-07-23 18:56:02
我似乎没有从 httpclient 获得整个 json 响应。我正在访问我在本地运行的 api,如下所示:curl -i -X POST http://localhost:8098/<api location> -F "files=@<filename>"我的回应是这样的:{"data":[<bunch of json>]但是当我尝试使用 httpclients 发布完全相同的文件时,我得到了以下响应:{"data":[]}我究竟做错了什么?这是我的java代码。谢谢!public CloseableHttpResponse submit (File file) throws IOException {    CloseableHttpClient client = HttpClients.createDefault();    HttpPost post = new HttpPost(API_LOCATION + API_BASE);    MultipartEntityBuilder builder = MultipartEntityBuilder.create();    builder.addBinaryBody("ISO xml file", file, ContentType.APPLICATION_OCTET_STREAM, file.getName());    HttpEntity multipartEntity = builder.build();    post.setEntity(multipartEntity);    CloseableHttpResponse response = client.execute(post);    System.out.println("response: " + IOUtils.toString(response.getEntity().getContent(),"UTF-8"));    client.close();    return response;}
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

正如 Andreas 和 Danilo 在评论中提到的:

在 curl 中,您命名字段文件,但在 Java 中,您将其命名为 ISO xml 文件。由于服务器只查找文件,它什么也看不到,并且什么也不响应。-安德烈亚斯

参数的名字呢?在 curl 上,您使用了“文件”,在 http 客户端上,您使用了“ISO xml 文件”。尝试将其更改为“文件”。-达尼洛

我需要将“ISO xml 文件”更改为“文件”并且它起作用了。


查看完整回答
反对 回复 2021-07-29
  • 1 回答
  • 0 关注
  • 527 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信