HttpClient() Angaben ändern nachträglich

Vom Front-End bis SOAP.

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

Ich muß über REST-Api kommunizieren. Der Anfang ist gemacht und ich bekomme auch Daten zurückgeliefert. Wenn ich aber verschiedene Varianten durchführen will, dann muß ich die URL ändern und dann damit weitere Abfragen starten, also mehr oder weniger den Pfad. Kann man sowas nachträglich machen und dann damit arbeiten, ohne ein weitere Objekt zu erstellen, oder sollte ich das besser alles mit xb2net versuchen? Wie wird das gemacht?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Tom »

Ich mache das mit dem xbHttpClient, aber es dürfte vom Prinzip dasselbe sein - wenn ich einen anderen Endpoint ansprechen will, ändere ich den Stream/die cURL und löse abermals ein :Execute() aus - und erhalte dann andere Results, eben vom anderen Endpoint (Path). Oder ich könnte so agieren, eigentlich sind Stream und sonstige Aspekte Parameter einer Methode, die das macht und deren Rückgabe ich verarbeite. Aber - warum willst Du das Clientobjekt recyceln? Hat das irgendeinen Nutzen?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

genaus das hatte ich in der Anleitung von Boris auch gesehen, aber nicht bei xbase++ . Macht Boris das nicht auch intern mit xbase++?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Tom »

Macht Boris das nicht auch intern mit xbase++?
Xb2Net verwendet jedenfalls nicht ASINET usw. Er konnte all das, lange bevor Xbase++ es konnte. Aber es ist gut möglich, dass er die gleichen Windows-API-Funktionen verwendet, auf denen das basiert.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ah, ok, verstehe. Windows Api Funktionen. Da liegt dann der Unterschied. Ich dachte es wäre ähnlich wie bei Roger, aber Boris hat da wohl andere Grundlagen verarbeitet. Jetzt wird da ein Schuh draus. Also sollte ich mir das doch eher mal in xb2net anschauen und evtl damit versuchen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ich habe gerade den letzten Satz gelesen. Was meinst Du mit recyclen?
Ich muß halt zwischendurch einen anderen Pfad haben, zu dem ich die nächste Abfrage schicke und habe im Moment keine Ahnung, wie man den wechselt, ohne wieder von vorne anzufangen. (xbase++ pur meine ich erstmal)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Tom »

Ich meine damit:

In aller Regel erzeuge ich für einen Request ein xbHttpClient-Objekt, setze den Request ab und verarbeite das Ergebnis. Das passiert in einer Funktion oder Methode, die das aufbereitete Ergebnis zurückliefert, meistens irgendein mehr oder weniger komplexes JSON-Ding (falls alles geklappt hat). Wenn ich mir beispielsweise über die TI-API aus einer ePA ein Dokument hole oder über die gleiche API eine Nachricht über "Kommunikation im Medizinwesen (KIM)" versende: Clientobjekt erzeugen -> Anfrage absetzen -> Ergebnis verarbeiten. Am Ende ist das Clientobjekt wieder weg, und für die nächste Anfrage wird der gleiche Prozess mit anderen Parametern verwendet. Ich könnte natürlich auch ein globales oder in der Funktion statisches Clientobjekt erzeugen und immer wieder mit neuen Anfragen (Pathes) bestücken, aber ich wüsste nicht, wofür das gut sein sollte, außer, dass ich Ressourcen binde. Das ist ja das tolle bei dieser Art von Kommunikation - ich muss keine "Leitung offenhalten" oder so. Wenn der Request erledigt ist, brauche ich die Connection nicht mehr. Sie bindet u.U. nur Ressourcen.
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: HttpClient() Angaben ändern nachträglich

Beitrag von Jan »

Ich mache das ähnlich. Für jeden Request baue ich das Objekt neu auf. Das ist eigentlich Standard-Code bei mir, das ich das HTTPClient-Objekt erstelle, sende, Rückgabe und Statusmeldungen auslese, und dann das direkt destroye und NILe. Mir ist unklar warum ich da irgend eine Art von Recycling machen sollte.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ok,
ich verstehe das im Moment noch nicht, was ihr mir da versucht zu erklären. Ich fange nochmal von vorne an.

Code: Alles auswählen

LOCAL oHttp  := HttpClient():new("https://irgendwas.de/api/auth/token")
oHttp:setMethod("GET")
         oHttp:httpRequest:addHeader("accept: ", "text/plain")
         oHttp:httpRequest:addHeader("Authorization", "Basic blahblah")
         oHttp:httprequest:setParameter("refreshCookie","true")
         cRueckmeldung  := oHttp:send()
das liefert mir einen Token zurück.
mit diesem Token kann ich über einen anderen Pfad Daten abfragen, oder senden
das mache bisher so.

Code: Alles auswählen

oHttp2 := HttpClient():new("https://irgendwas.de/api/management/Environment")
oHttp2:setMethod("GET")
            oHttp2:httpRequest:addHeader("accept: ", "text/plain")
            oHttp2:httpRequest:addHeader("Authorization", "Bearer " + cToken)
            cRueckmeldung  := oHttp2:send()
und das geht da so weiter. Ich möchte verschiedene Pfade abfragen, die alle eine unterschiedliche URL haben am Ende. Geht das nicht direkt nur mit einem Objekt? mal ist es ein GET, dann ist es ein PUT Wenn ich das jetzt x-mal machen wollte, dann müßte ich x-mal ein neues Objekt erzeugen. Oder muß ich einfach nur das Objekt killen, neu erstellen mit neuer URL und dann mit dem Token weiterarbeiten? Steht die Verbindung dabei noch, oder verwechsel ich da etwas?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

hm, ich glaube ich habe da was total verkehrt verstanden. Das scheint wirklich so zu klappen, das ich das Objekt einfach neu erstelle mit anderer URL und dann damit weiter mache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Tom »

Hallo, Manfred.

Das Token ist nichts weiter als ein Ersatz für die Anmeldung, also für Benutzername + Passwort. Statt diese Paarung immer wieder bei jedem Request zu verwenden (etwa als GET-Parameter), holt man sich über einen einmaligen Prozess (Login) für diese Kombination ein Token, das man dann bei den eigentlichen Datenabrufen anstelle von Logindaten verwenden kann. Dieses Token ist aber nur für einen gewissen Zeitraum gültig, und man bekommt jedes Mal ein anderes Token, während, wenn man das macht, alle älteren Token ungültig werden. In aller Regel gibt es da Methoden, um es zu refreshen. Man kann sich aber auch für jeden Abruf immer wieder ein Token holen, das spielt in aller Regel keine Rolle. Wenn man eine Reihe von Daten abholt, genügt es normalerweise, sich einmal ein Token zu holen und dann die Requests auszuführen, aber es geht auch anders.

In Deinem Beispiel gibst Du den Pfad - die URI - beim Erzeugen des HttpClient-Objekts an, was vermutlich bei HttpClient auch anders geht. Wie auch immer, diesen Parameter müsstest Du ersetzen, um ein abermaliges :Send() mit dem gleichen Objekt durchführen zu können, aber an ein anderes Ziel. Aber es kann sein, dass Dein Authorization-Token dann schon ungültig ist, also müsstest Du das (Du hast es per "addHeader" gesetzt) ggf. auch ersetzen. Da ist es einfacher, all das in eine Funktion zu tun und die URI als Parameter zu übermitteln. Und Du müsstest dann darauf reagieren, dass das Token invalid sein kann - oder halt immer wieder ein neues holen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

richtig Tom. Aber ich kann nichts finden in der Anleitung, womit man diese URL nachträglich ändern könnte.Deshalb ja eingangs meine Frage dazu. Das Token selbst ist für meine Zwecke ausreichend lange gültig
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Tom »

Bei xbHttpClient ist die URI Parameter von Execute. Bei HttpClient musst Du vermutlich einen Umweg über die RequestMessage gehen.
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: HttpClient() Angaben ändern nachträglich

Beitrag von Jan »

Manfred,

wenn ich ein Token extra abfragen muß mach ich das auch über zwei getrennte Abfragen. Wobei Token ja teilweise länger gültig sind, so das ich nach der Token-Abfrage mehrere eigentliche Datenabfragen machen kann, ohne jedes mal neu nach dem Token zu fragen. Das spar ich mir in den Fällen dann tatsächlich. Aber eben nicht als Recycling für das eigentliche Objekt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ist schon ok. Ich dachte wenn ich das Objekt kille, das dann die verbindung weg wäre. Aber das klappt doch anders, als ich es vermutet habe. Ich denke es müßte weiter so klappen, wie ich es weiter oben beschrieben habe. ich Nille das Objekt, erstelle s neu mit neuer URL und arbeite dann damit weiter. Es geht ja in erster Linie um das Token, mit dem ich meine Berechtigung zeige. Ich habe sowas noch nie gemacht und muß mich da erst ein wenig einarbeiten..
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Werner_Bayern »

Servus Manfred,

da bin ich ja gespannt, ob Du das hinbekommst. Ich habs nicht geschafft. Lediglich, wenn die URI gleich bleibt und sich z. B. nur die Methode ändert. Das Problem ist nämlich, dass das Objekt httpRequest readonly ist!

Nein, eine Verbindung bleibt nicht offen, wenn Du das HttpClient-Objekt neu erzeugst. Dein Token sorgt dafür, dass Du Dich nicht nochmal extra anmelden musst. Neuer HttpClient(), neue Verbindung.
es grüßt

Werner

<when the music is over, turn off the lights!>
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: HttpClient() Angaben ändern nachträglich

Beitrag von Jan »

Manfred,

wenn Du das Objekt destroyst dann ist die Verbindung natürlich weg. Aber ja nicht die Daten, die Du vorher aus den Antworten ausgelesen hast. Und wenn Du ein Token brauchst dann brauchst Du nur diesen String für die weiteren Abfragen. Nicht aber die Verbindung, mit der Du das Token erhalten hast.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

Das ist eine Antwort, die ich von anderer Stelle erhalten habe.
Die Url ist in HttpClient():new() ein Optionaler Parameter den du weglassen kannst.

https://doc.alaska-software.com/content ... ndnew.html

Du kannst für jeden Request eigens eine HttpRequestMessage():new( cUrl ) Instanz erzeugen und diese dem HttpClient():send( oHttpRequestMessage ) übergeben. Du bekommst dann von :send() ein HttpResponseMessage geliefert wo du mit :getContent() den Body der HTTP response entnehmen kannst.

https://doc.alaska-software.com/content ... ndnew.html
https://doc.alaska-software.com/content ... dsend.html
aber irgendwie verstehe ich es nicht, wie das praktisch umgesetzt werden muß. Bei mir klappt es nicht....
kann man das nicht alles direkt in die Klammer bei send() schreiben, oder muß das Schritt für Schritt vorher erstellt und dann in die send() geschrieben werden?

Code: Alles auswählen

Httpclient():send(HttpRequestMessage():new( cUrl ))
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ich habe es immer noch nicht gebacken bekommen. :angry5:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Jan »

Wenn ich mir die 19 Nachrichten vorher anschaue muß ich ehrlich sagen was genau da jetzt scheitert. Das gab da inzwischen so viele Herangehensweisen, Diskussion, (externe) Hinweise, das ich da irgend wo den Faden verloren habe.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

ich habe die Sache mit dem HttpRequestMessage() nicht verstanden. Das soll ja erstellt werden und dann in Send übergeben werden. Das klappt bei mir nicht. Wie muß man das machen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Dominik Krebs
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 197
Registriert: Mo, 15. Apr 2019 16:19
Hat sich bedankt: 10 Mal
Danksagung erhalten: 4 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Dominik Krebs »

Hallo Manfred,

Code: Alles auswählen

oHttp:requestMessage := oRequestMessage
Ich bin aber der Meinung das du ein HttpClient Objekt nur einmal mittels send() ausführen kannst. Ich meine mal gehört zu haben das das pro Instanz nur ein Mal möglich ist.
Gruß Dominik
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: HttpClient() Angaben ändern nachträglich

Beitrag von Manfred »

Das war die Antwort von Alaska.
Die Url ist in HttpClient():new() ein Optionaler Parameter den du weglassen kannst.

Du kannst für jeden Request eigens eine HttpRequestMessage():new( cUrl ) Instanz erzeugen und diese dem HttpClient():send( oHttpRequestMessage ) übergeben. Du bekommst dann von :send() ein HttpResponseMessage geliefert wo du mit :getContent() den Body der HTTP response entnehmen kannst.
Die links dazu stehen weiter oben. Den Text habe ich nicht ganz verstanden. Kann ich damit jedesmal wieder ein :send() machen mit dem gleichen httpclientobjekt aber nur mit einem geänderten MessageRequestObject, oder wie ist das gemeint. Wenn nicht, dann wäre ich ja meiner Idee jedesmal einen neuen httpClient zu erzeugen doch richtig.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: HttpClient() Angaben ändern nachträglich

Beitrag von Jan »

Hallo Manfred,

Dein Ausgangspunkt ist ja das Du partout nur ein einziges HttpClient()-Objekt erstellen möchtest, und das dann recycelst. Warum auch immer. Ich arbeite wie geschrieben sehr intensiv mit REST und SOAP API-Servern, und mache das nie. Ohne da sich da durch negative Nebeneffekte habe. Ich könnte mir höchstens vorstellen daß die Neuerstellung eines Objektes länger dauert als die URL neu zu setzen. Aber um das spürbar zu merken müsste man vermutlich Unmengen an Requests sehr schnell versenden.

So wie ich Alaska verstehe kannst Du ein HttpClkient()-Object erstellen, ohne die URL anzugeben. Statt dessen baust Du Dir ein neues HttpRequestMessage-Objekt mit dem Pfad, und baust dieses Objekt in den oHc:send() ein. Was Du mehrfach mit dem gleichen oHc-Objekt machen kannst. Ist jetzt nur ins Blaue geraten.

Dabei stellt sich mir die Frage was Dir das bringen könnte. Ob Du nun ein HttpClient-Objekt neu erstellst, oder ein HttpRequestMessage-Objekt dürfte letztendlich ja vollkommen egal sein.

Ober bin ich da gedankenmäßig beim Versuch Dir folgen zu wollen auf einem Irrweg?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten