У меня была следующая строка, которую я передал 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());
}