猿问

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

我似乎没有从 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;

}


江户川乱折腾
浏览 528回答 1
1回答

慕的地8271018

正如 Andreas 和 Danilo 在评论中提到的:在 curl 中,您命名字段文件,但在 Java 中,您将其命名为 ISO xml 文件。由于服务器只查找文件,它什么也看不到,并且什么也不响应。-安德烈亚斯参数的名字呢?在 curl 上,您使用了“文件”,在 http 客户端上,您使用了“ISO xml 文件”。尝试将其更改为“文件”。-达尼洛我需要将“ISO xml 文件”更改为“文件”并且它起作用了。
随时随地看视频慕课网APP

相关分类

Java
我要回答