так что есть несколько предостережений с этим. Я получил это после нескольких изменений.
- Обязательно установите кодировку.
setRequestProperty("charset", "utf-8");
Не оборачивайте OutputStream, помещайте его в попытку с ресурсами и пишите json в виде байтового массива как utf-8, поскольку это то, что мы принимаем.
try (OutputStream output = httpcon.getOutputStream()) {
output.write(json.toString().getBytes(StandardCharsets.UTF_8));
}
Убедитесь, что ваш Json объект правильный. Если вы собираетесь использовать accountID, убедитесь, что вы используете его правильно. Например, Gson / Jackson не сможет проанализировать это, поскольку обычно он принимает account_id или accountId. При необходимости используйте @JsonProperty.
@JsonProperty("account_id")
private final String accountId;
Пример контроллера с пружинной загрузкой
@RestController
public class TestPostController {
public static class Account {
@JsonProperty("account_id")
private final String accountId;
public Account(String accountId) {
this.accountId = accountId;
}
public Account() {
this(null);
}
public String getAccountId() {
return accountId;
}
}
@PostMapping(path = "/test-post", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<Account> response(@RequestBody Account account) {
return ResponseEntity.ok(account);
}
}