Your request body probably contains content which is flagged as suspicious by a firewall or some other security mechanism (at least that's what the issue was for me). To circumvent this, you can simply encode the request body content as a Base64 encoded text on the client-side, and decode it on the server-side.
For example, if your client is a JavaScript application, I recommend you to use the js-base64 library, as it provides support for UTF-8 characters and it's really light without any dependencies.
I will leave a few examples in some popular web development languages.
JavaScript
import { Base64 } from 'js-base64';
Base64.encode('dankogai');
Base64.decode('ZGFua29nYWk=');
Java
public static String base64Encode(String plainText) {
return Base64.getEncoder().encodeToString(plainText.getBytes());
}
public static String base64Decode(String encodedString) {
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
return new String(decodedBytes);
}
C#
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
public static string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}