Hi,
wir haben eine externe Firma die für uns eine REST API zu Ihrem Produkt programmiert. Leider sind die Kollegen nicht so richtig gut drauf und ich muss ihnen jeden Bug auf dem Silbertablett servieren bevor sie sich darum kümmern.
Nun habe ich etwas extrem seltsames:
Es gibt ein Kommando zum Erstellen eines Library Entriss in deren Datenbank. Dazu sende ich einen POST Request an eine URL mit einem JSON Body der den Eintrag enthält. Funktioniert soweit gut.
Ein Eintrag sieht dabei so aus:
Wenn ich diesen Request über Postman abschicke funktioniert er einwandfrei. Sende ich den gleichen Request aus meiner App heraus mit Java, dann bekomme ich einen ErrorCode 400. Ich konnte herausfinden, dass es an dem Bindestrich in questions -> text liegt. Steht in diesem Feld ein Bindestrich gibt es einen ErrorCode 400 entferne ich den Bindestrich geht es. Wie gesagt NUR aus meiner App heraus. Mit Postman ist es kein Problem.
Ich habe den erzeugten JSON-String in meiner App kopiert und in den Postman gepackt und es geht!
Ich müßte nun also irgendwie Debuggen können was an meinem JAVA Request anders ist.
Beim Header sehe ich keinen Unterschied. Postman:
Mein Code zum Header erzeugen:
und der Code zum Erzeugen des Body:
Wie komme ich hier also weiter?
Gruß
Thallius
wir haben eine externe Firma die für uns eine REST API zu Ihrem Produkt programmiert. Leider sind die Kollegen nicht so richtig gut drauf und ich muss ihnen jeden Bug auf dem Silbertablett servieren bevor sie sich darum kümmern.
Nun habe ich etwas extrem seltsames:
Es gibt ein Kommando zum Erstellen eines Library Entriss in deren Datenbank. Dazu sende ich einen POST Request an eine URL mit einem JSON Body der den Eintrag enthält. Funktioniert soweit gut.
Ein Eintrag sieht dabei so aus:
Code:
{
"location":
{
"stackID":1285
},
"questions":
[
{
"text":"a-b-c",
"complianceID": "Yes"
}
],
"answer":
{
"text":" ",
"footnotes":[]
},
"tags":
[
"a-b-c",
"d-e",
"x",
"y"
],
"languageCode":"en"
}
Wenn ich diesen Request über Postman abschicke funktioniert er einwandfrei. Sende ich den gleichen Request aus meiner App heraus mit Java, dann bekomme ich einen ErrorCode 400. Ich konnte herausfinden, dass es an dem Bindestrich in questions -> text liegt. Steht in diesem Feld ein Bindestrich gibt es einen ErrorCode 400 entferne ich den Bindestrich geht es. Wie gesagt NUR aus meiner App heraus. Mit Postman ist es kein Problem.
Ich habe den erzeugten JSON-String in meiner App kopiert und in den Postman gepackt und es geht!
Ich müßte nun also irgendwie Debuggen können was an meinem JAVA Request anders ist.
Beim Header sehe ich keinen Unterschied. Postman:
Code:
Content-Type: application/json
Authorization: Bearer xxx
User-Agent: PostmanRuntime/7.26.5
Accept: */*
Postman-Token: 4b36f457-b429-40dd-ad1b-19a1bbf504e9
Host: apiurl
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 332
Mein Code zum Header erzeugen:
Code:
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", token.type + " " + token.token);
con.setRequestProperty("User-Agent", "PostmanRuntime/7.3.0");
con.setRequestProperty("Accept", "*/*");
con.setRequestProperty("Host", apiURL);
con.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
con.setRequestProperty("Connection", "keep-alive");
con.setRequestProperty("Content-Type", "application/json");
und der Code zum Erzeugen des Body:
Code:
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(json);
wr.flush();
wr.close();
Wie komme ich hier also weiter?
Gruß
Thallius