Тип кодировки запроса HttpClient в JAVA - PullRequest
0 голосов
/ 21 июня 2019

У меня была следующая строка, которую я передал http-post-request:

String body =

{
  "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.

Мой заголовок содержит: "Content-type": "application / json".

Проблема с этим была в объекте custom_fields, внутри "value" былоследующий символ 'é'.Замена этого символа на «e» привела к тому, что json был в порядке, и мой Reponse-статус был в порядке 201.

Знаете ли вы, как я могу предотвратить это в будущих запросах?Нужно ли указывать конкретную кодировку для моего запроса?

Банкомат мой запрос выглядит следующим образом:

        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());

        }

1 Ответ

2 голосов
/ 21 июня 2019

Возможно, вам нужно установить кодировку в заголовке

Content-Type: application / json;charset = utf-8

Это объясняет это дополнительно W3C Интернационализация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...