Hallo Forums-Experten,
ich habe ein Java-Programm geschrieben welches eine REST-API ansteuern soll. In den meisten Fällen klappt das auch prima, nur nicht sobald Sonderzeichen auftauchen. Das heißt ich generiere mir mit Java ein JSON und schicke das an die andere Software. Wenn ich das JSON mit JAVA schicke blockt die Zielsoftware in einigen Fällen das Objekt, schicke ich selbes Objekt über Postman (vorher ein einfach System.out.println()json.toString()), dann klappt es. Mein Zielprogramm, welches in PHP geschrieben ist gibt mir folgende Fehlermeldung aus:
Mit folgendem Programmcode, schicke ich das JSON-Objekt ab:
Habt ihr eine Idee, wie ich diesen Fehler genauer einschränke oder gar beheben kann?
besten Gruß
Balli
ich habe ein Java-Programm geschrieben welches eine REST-API ansteuern soll. In den meisten Fällen klappt das auch prima, nur nicht sobald Sonderzeichen auftauchen. Das heißt ich generiere mir mit Java ein JSON und schicke das an die andere Software. Wenn ich das JSON mit JAVA schicke blockt die Zielsoftware in einigen Fällen das Objekt, schicke ich selbes Objekt über Postman (vorher ein einfach System.out.println()json.toString()), dann klappt es. Mein Zielprogramm, welches in PHP geschrieben ist gibt mir folgende Fehlermeldung aus:
Malformed UTF-8 characters, possibly incorrectly encoded
Mit folgendem Programmcode, schicke ich das JSON-Objekt ab:
Code:
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
String url = (String) this.props.get("drupal_baseURL") + (String) this.props.get("drupal_post");
HttpPost request = new HttpPost(url);
StringEntity params = new StringEntity(json.toString());
request.addHeader("Content-Type", "application/json; charset=UTF-8");
request.addHeader("Accept", "application/json");
request.addHeader("X-CSRF-Token", this.sessionToken);
String encoding = Base64.getEncoder().encodeToString((this.props.get("drupal_user") + ":" + this.props.get("drupal_password")).getBytes());
String authHeader = "Basic " + encoding;
request.addHeader("Authorization", authHeader);
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
int code = response.getStatusLine().getStatusCode();
System.out.println("Insert: " + code);
} catch (Exception ex) {
System.out.println(ex);
System.out.println("MIST Insert");
}
Habt ihr eine Idee, wie ich diesen Fehler genauer einschränke oder gar beheben kann?
besten Gruß
Balli