java - JAVA中HttpClient请求的编码类型

标签 java json httpclient

我将以下字符串传递给 http-post-request:

字符串主体=

{
  "invoicee": {
    "customer": {
      "type": "company",
      "id": "a62117d6-d324-0ae8-8f69-bb63ada0fee2"
    }
  },
  "department_id": "fba7d16b-a988-0420-894f-444b033ac379",
  "payment_term": {
    "type": "cash"
  },
  "grouped_lines": [
    {
      "section": {
        "title": ""
      },
      "line_items": [
        {
          "quantity": 3,
          "description": "An awesome product",
          "unit_price": {
            "amount": 123.3,
            "currency": "EUR",
            "tax": "excluding"
          },
          "tax_rate_id": "23d7af10-427b-06e4-8242-88e8228cc381"
        }
      ]
    }
  ],
  "custom_fields": [
    {
      "id": "673bfdeb-1112-0423-9e54-a8adace28ae4",
      "value": "Opdrachtbon Kruidvat 8957 365690.01 Kruidvat 8957 Neerstraat 34 Brakel (OVL) De keukenkraan is eraf gevallen, robinet cuisine est tombé "
    }
  ]
}
        headers.add("Content-Type", "application/json");

        headers.add("authorization", "Bearer " + acces_token);

它返回了 400 错误请求,其中包含表明这是格式错误的 JSON 的具体信息。

我的 header 包含:“Content-type”:“application/json”。

问题出在 custom_fields 对象中,“值”中存在以下字符“é”。用“e”替换这个字符使 json 正常,我的响应状态为 201 OK。

您知道我如何在以后的请求中防止这种情况发生吗?我是否必须为我的请求设置特定的编码?

ATM 我的请求如下所示:

        HttpEntity<String> requestEntity = new HttpEntity<String>(body, headers);

        try {
            rest.exchange("https://api.teamleader.eu/invoices.draft", HttpMethod.POST, requestEntity, String.class);
        } catch (HttpClientErrorException e) {
            System.out.println("!!ERROR!!");
            System.out.println(e.getResponseBodyAsString());

        }

最佳答案

您可能需要在 header 中设置字符集

内容类型:application/json;字符集=utf-8

这进一步解释了它 W3C Internationalisation

关于java - JAVA中HttpClient请求的编码类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56701433/

相关文章:

java - 在 GWT 异步方法中传递异常的正确方法是什么?

java - 使用 Junit 4 进行 java servlet 的 Happy Flow 测试用例

javascript - 使用 jQuery 将 json 值返回到表单字段

javascript - 为什么 [Object] 在 node.js 中打印到控制台而不是对象的内容?

c# - 反序列化 JSON 时出现线程错误

java - OWLS 使用 Jena 进行文档解析

java - 梯度错误:Execution failed for task ':app:transformClassesWithJarMergingForDebug'

python - 在 Django 管理中显示 json 字段

java - 如何从响应中查找 HTTP 媒体类型(MIME 类型)?

asp.net - CAPI2 代理自动配置 URL 未找到