带有二进制响应的 Unirest (Mashape) 发布请求包含特殊符号

问题描述

我在执行应该使用 unirest (mashape) 返回 csv 文件的 post 请求时遇到困难。 当我用邮递员执行请求时,我得到状态 200,原始响应正文包含以下内容

enter image description here

一旦我点击保存响应并将其下载到我的本地文件系统上,我就看不到下载文件中的符号:

实体类型”,“账户总数” "ACC","25"

对于我使用 unirest 的 post 请求,我对 .asBinary() 使用了 HttpResponse 方法,但似乎字节数组包含由空格表示的相同符号。这是我的方法

 private void checkResponseBinary(HttpResponse<InputStream> response,int expectedStatusCode) {
        Integer responseStatusCode = response.getStatus();
        InputStream responseBody = response.getBody();
        String body = "";
        try {
            body = IoUtils.toString(responseBody,StandardCharsets.UTF_8);
        } catch (IOException e) {
           e.printstacktrace();
        }

        if (responseStatusCode != expectedStatusCode) {
             throw new RuntimeException(
        "Actual response status code " + responseStatusCode + " is not equal to expected " + 
          expectedStatusCode
          + ". Body: " + responseBody);
       }
  }

此时 body 字符串变量包含:

enter image description here

当我将此内容写入文件时,它看起来更糟。空格替换为 NUL:

enter image description here

我希望 csv 文件内容看起来像从邮递员那里下载的文件: "实体类型","账户总数" "ACC","25"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...