Probleme mit Codesys HttpClient

Holzerm

New member
Beiträge
2
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Guten Tag,

wir möchten über den Baustein HttpClient einen POST Befehl schicken. Mit Python konnten wir dies schon erfolgreich umsetzen.
Unser Problem ist, dass wir nicht nur die Authorization in dem Header übergeben müssen, sondern zusätzlich noch den Content-Typ.

Bei Python können wir dies relativ einfach wie folgt schicken:
{'Authorization': "Basic ZGlzdHJpYnV0b3I6NjJxNA==", 'Content-Type': "application/json"}

Welche schreibweiße müssen wir für den HttpClient Baustein verwenden? Wir haben hierzu schon viele verschiedene Möglichkeiten getestet und bekommen immer die Rückmeldung:
"{"error_human": "missing_content_type_json_header", "error_code": "missing_content_type_json_header", "args": {}}$N"

Wäre super, wenn uns jemand hierzu einen Tipp geben könnte.
Danke im Voraus!
 

Oberchefe

Well-known member
Beiträge
2.443
Punkte Reaktionen
408
Ich kenne den Baustein nicht, aber generell werden die Parameter beim Http Protokoll üblicherweise jeweils als eigene Zeile übertragen, je nach Server reicht da schon ein $N, sicherer ist aber ein $R$N, das funktioniert bei jedem Server.

also in der Art

POST /blabla.html HTTP/1.1$R$N
Host: 8.8.8.8$R$N
......$R$N
......$R$N
Autorization: xyz$R$N
Content-Type: abc$R$N
......$R$N
 
OP
H

Holzerm

New member
Beiträge
2
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo Oberchefe,
wir haben es wie folgt probiert:
wsAdditionalHeader := "Authorization: Basic ZGlzdHJpYnVNA== $R$NContent-TYPE: application/json";
Nur in diesem Format bekommen wir die Rückmeldung vom Server dass der Content-Typ fehlt. Ändern wir die schreibweiße z.B. durch das einsetzten eines Komma, bekommen wir eine "Bad Request - Your browser has sent a request which can not be understand". Wir finden keinerlei Dokumentation, wie wir diesen Header aufbauen sollen.
 

Tschoke

Well-known member
Beiträge
87
Punkte Reaktionen
68
Wenn es mit eurem Python Programm geklappt hat, dann würde ich einfach mit z.B. Wireshark den Request aufzeichnen.
Dann am Besten den Request der SPS auch aufzeichnen.
Und dann die beiden miteinander vergleichen und in der SPS dementsprechend anpassen.
 
Oben