REST Schnittstelle (Header)

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

REST Schnittstelle (Header)

Beitrag von adrian »

Hallo zusammen

Ich sollte in den nächsten 2-3 Wochen eine Schnittstelle (REST) zum Laufen bringen, habe aber bereits im ersten Test meine Probleme.

Ich sollte 2 Header-Parameter übertragen (Zugriffsrechte). Mit dem Befehl SetHeader kann ich ja nur einen übertragen, daher der zweite würde den ersten überschreiben, für mehrere gibt es ja die Möglichkeit die Werte in einem Array zu übetragen.

Doch dies für bei mir zu einem Absturz, was mache ich hier falsch? in der Doku gibt es da leider keinen Hinweis.

Code: Alles auswählen

	oHttp := HttpClient():new(AppIni():GetEntry("ORTHO","BASISURL")+"ela/participants")
	aHeader[1] := "X-Client-ID,1000011903"
	aHeader[2] := "Authorization,UC1fQ3loZTkxeHpMV09JaTp2bWN1RHhaSGFKTHl1X3g3"
	oHttp:httpRequest:setHeader(aHeader)
	oHttp:setMethod( "GET" )
	cResult := oHttp:send()
Herzlichen Dank für jeden Tipp.

Adrian
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: REST Schnittstelle (Header)

Beitrag von Tom »

Du musst AddHeader() verwenden, um Header-Elemente hinzuzufügen. SetHeader() setzt die Werte einzelner Parameter.
Herzlich,
Tom
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: REST Schnittstelle (Header)

Beitrag von adrian »

Danke Dir Tom, aber irgendwie hange ich mit diesem Thema, es möchte bei mir nichts gelingen:

Ich habe den folgenden Befehl bekommen, welcher ich in xBase umsetzen sollte:
curl -kvL --resolve --location --request GET "https://{IP-Box}:8100/md/ela/participants" --header "X-CLIENT-ID: {Seine Client-ID}" --header "Content-Type: multipart/form-data" --header "Authorization: Basic {Autorisation aus dem Kundenportal unter Branchenapplikation}"
Kann mir da jemand den entsprechenden Weg zeigen, dann bringe ich die anderen Befehle sicherlich auch zum Laufen

Herzlichen Dank für die Bemühungen

Adrian
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: REST Schnittstelle (Header)

Beitrag von Tom »

Ich mache das mit Xb2.net, deshalb kann ich Dir vermutlich nur eingeschränkt helfen. Bei Xb2.Net gehen die Header-Parameter als gesondertes Array ans Execute. Der Aufbau ist aber vermutlich ähnlich - man erzeugt ein zweidimensionales Array, das jeweils aus dem Namen des Header-Parameters besteht ('Content-Encoding') und aus dem Wert dafür ('gzip'). Wenn ich die Doku zu "HttpMessage:AddHeader" anschaue, müsste das bei Dir vermutlich so aussehen:

Code: Alles auswählen

oHttp:httpRequest:addHeader("X-Client-ID","1000011903")
oHttp:httpRequest:addHeader("Authorization","UC1fQ3loZTkxeHpMV09JaTp2bWN1RHhaSGFKTHl1X3g3")
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: REST Schnittstelle (Header)

Beitrag von Jan »

Hallo Adrian,

nur so ins Blaue, einfach mal ausprobieren:

Code: Alles auswählen

oHC := HttpClient():new("https://{IP-Box}:8100/md/ela/participants")
oHC:setMethod("GET")
oHC:httpRequest:setContentType("multipart/form-data")
oHC:httpRequest:setParameter("X-CLIENT-ID", {Seine Client-ID})
oHC:httpRequest:setHeader("Cache-Control", "no-cache")
oHC:httpRequest:setHeader("Accept-Language", cSprache)
oHc:httpRequest:setHeader("Authorization", "Basic")

cResponse := oHC:send()
nError    := oHC:getStatusCode()


Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: REST Schnittstelle (Header)

Beitrag von adrian »

Cool Jan, herzlichen Dank, wird heute Abend noch getestet.

es Grüessli

Adrian
es Grüessli

Adrian
Antworten