CURL per API einbinden?

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
RolandG
UDF-Programmierer
UDF-Programmierer
Beiträge: 88
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 4 Mal
Kontaktdaten:

CURL per API einbinden?

Beitrag von RolandG »

Hallo

Hat schon jemand cURL in Xbase++ erfolgreich eingebunden statt per RunShell aufzurufen?

Gruß
Roland
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Ich kenne cURL nur als CLI, und so ist es auch standardmäßig unter Windows ab Windows 10 verfügbar. Wo und womit sprichst Du da welche API an?
Ich verwende cURL für schnelle Tests; meistens lasse ich mir die cURL-Scripte von Postman erzeugen. In der Anwendung umgesetzt wird es dann mit Chilkat (> 80%, nach einem Import der Postman-Collection) oder xb2.Net.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Übrigens. Großartiges Tool.

https://openapi-generator.tech/
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2165
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 31 Mal
Danksagung erhalten: 80 Mal

Re: CURL per API einbinden?

Beitrag von Werner_Bayern »

Für was möchtest Du diesen umständlichen Weg gehen, wenn HTTPClient das auch kann?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12940
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 48 Mal

Re: CURL per API einbinden?

Beitrag von AUGE_OHR »

hi
Werner_Bayern hat geschrieben: Mi, 28. Aug 2024 11:59 Für was möchtest Du diesen umständlichen Weg gehen, wenn HTTPClient das auch kann?
wie bindet du das ein

Code: Alles auswählen

curl -4 ifconfig.co/json
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14703
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 23 Mal
Danksagung erhalten: 91 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Jan »

Jimmy,

hat Roland Dir das per PN gegeben, daß das sein Problem ist? Ansonsten tut das hier nichts zur Sache.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12940
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 48 Mal

Re: CURL per API einbinden?

Beitrag von AUGE_OHR »

hi.
Jan hat geschrieben: Mi, 28. Aug 2024 19:55 hat Roland Dir das per PN gegeben, daß das sein Problem ist? Ansonsten tut das hier nichts zur Sache.
Dumme Antwort

ich habe Werner zitiert und Ronald hat nur gefragt :
Hat schon jemand cURL in Xbase++ erfolgreich eingebunden statt per RunShell aufzurufen?
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14703
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 23 Mal
Danksagung erhalten: 91 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Jan »

Jimmy,

nix dumme Frage. Stänker bitte hier nicht am THema vorbei. Du hattest gefragt wie man eine bestimmte Abfrage in HttpClient durchführt. Diese Abfrage habe ich aber hier im Thread noch nicht gelesen. Daher hatte ich gefragt woher Du das hast.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

wie bindet du das ein
So:

Code: Alles auswählen

PROCEDURE Main()
    LOCAL oClient, cResponse

    // Erzeuge einen neuen HttpClient
    oClient := HttpClient():New("http://ifconfig.co/json")

    // Sende eine GET-Anfrage an ifconfig.co/json
    cResponse := oClient:Send()

    // Überprüfe, ob die Anfrage erfolgreich war
    IF oClient:getStatusCode() == 200
        ? cResponse
    ELSE
        ? "Fehler bei der Anfrage. Statuscode: ", oClient:getStatusCode() 
    ENDIF
RETURN
(Edit: Vereinfacht und korrigiert.)
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12940
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 48 Mal

Re: CURL per API einbinden?

Beitrag von AUGE_OHR »

Hi,
Jan hat geschrieben: Do, 29. Aug 2024 7:07 Diese Abfrage habe ich aber hier im Thread noch nicht gelesen.
deshalb habe ich danach gefragt.
wollte wissen ob der HttpClient damit umgehen kann, denn meine Browser (EDGE, Firefox) können das nicht

Microsoft hat nicht umsonst CURL in Ihr Betriebsystem aufgenommen, sondern weil es ein sehr MÄCHTIGES Tool ist.

@Tom : Danke für deinen Lösungs Vorschlag,
aber wie bekomme ich die IP4 URL damit da die IP6 URL mir Hamburg(falsch) als Ort angibt und IP4 Reinbek(richtig)
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15734
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 77 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von brandelh »

Die Ortsangabe zu einer IP Adresse scheint mir eher vom Provider abhängig und nicht genau.

Wenn ich maps aufrufe oder andere Seiten die sowas wie Standort abfragen (am PC, nicht am Handy das GPS nutzen kann),
bekomme ich nur Näherungswerte so im Umkreis von 50 km
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

@Jimmy: Das ging früher über Subdomains (v4 und v6.ifconfig.co), aber das wird seit einer Weile nicht mehr unterstützt. Und das mit dem Parameter -4 geht via HttpClient nicht. Also müsste man stattdessen einen anderen Dienst verwenden, etwa https://ipv4.icanhazip.com/

Edit: Mit den Informationen über den Ort haben IP4 bzw. IP6 nichts zu tun. Was Dir da angezeigt wird, ist der Standort bzw. nächste Zugangspunkt Deines Providers (IPS/ASN), nicht Deine eigene Position. An die kommt man auf diesem Weg nicht, und die wird auch nicht in die Clientdaten eingebunden.

Edit(2): Es ist Zufall, dass bei Dir, Jimmy, der IP4-Lookup näher an Deiner tatsächlichen Adresse liegt als der IP6-Lookup. Bei mir ist es genau umgekehrt - IP4 läuft über einen Knoten in Schönefeld, ungefähr 40 km von meinem Standort entfernt, und IP6 läuft über Berlin-Mitte, das sind 12 km.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12940
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 20 Mal
Danksagung erhalten: 48 Mal

Re: CURL per API einbinden?

Beitrag von AUGE_OHR »

hi Tom,
Tom hat geschrieben: Do, 29. Aug 2024 11:16 Und das mit dem Parameter -4 geht via HttpClient nicht.
das ist die entscheidende Aussage.

@Hubert :
bekomme ich nur Näherungswerte so im Umkreis von 50 km
mit IP6 bekomme ich :
"city": "Hamburg",
"latitude": 53.5544,
"longitude": 9.9946
was mitten in der Binnen Alster wäre

mit IP4 bekomme ich :
"city": "Reinbek",
"latitude": 53.5179,
"longitude": 10.2552
was in einem Ententeich in ca. 2 KM Luftline Entfernung liegt-

mit ist klar das beide Ergebnisse nicht den wahren Standort zeigen, sondern den ungefähren Zugangspunkt des Provider der sicherlich nicht IM Wasser liegt.
gruss by OHR
Jimmy
RolandG
UDF-Programmierer
UDF-Programmierer
Beiträge: 88
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von RolandG »

wie ich das sehe hat das auch was damit zu tun ob Du die Abfrage vom eigenen Standort im Arbeitsplatz Browser zulässt und die richtig zwischengespeichert sind. Von Google z.B.
Ich habe das überall gesperrt, da kommt inzwischen Karlsruhe...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15734
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 77 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von brandelh »

RolandG hat geschrieben: Do, 29. Aug 2024 13:00 Ich habe das überall gesperrt, da kommt inzwischen Karlsruhe...
ah 1&1 Kunde ;-)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14703
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 23 Mal
Danksagung erhalten: 91 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Jan »

AUGE_OHR hat geschrieben: Do, 29. Aug 2024 10:46 Hi,
Jan hat geschrieben: Do, 29. Aug 2024 7:07 Diese Abfrage habe ich aber hier im Thread noch nicht gelesen.
deshalb habe ich danach gefragt.
Und was genau hat das mit diesem Thema von Roland zu tun? Warum machst Du für solche Fragen nicht einen neuen Thread auf statt diesen hier in nicht dazu passenden Bahnen abzulenken?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Und was genau hat das mit diesem Thema von Roland zu tun?
Jimmy wollte eine CURL-Kommandofolge zeigen, die man nicht einfach via HttpClient realisieren kann. Das stimmte zwar nur zu ungefähr 20 Prozent, aber verstanden habe zumindest ich schon, was er da beabsichtigt hat. Und ich dürfte ja wohl kaum als Jimmy-Schleimer gelten. ;)
Herzlich,
Tom
RolandG
UDF-Programmierer
UDF-Programmierer
Beiträge: 88
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von RolandG »

Mal wieder was zum Thema...

Bei CURL sind nur DLLs dabei - brauche ich eine (passende) LIB zum Kompilieren mit Xbase++?
Habe mir da noch nie richtig Gedanken gemacht.

Gruß
Roland
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Hallo, Roland.

LIBs braucht man nur, wenn andere Xbase++-DLLs (statisch) verwendet werden.

Wenn Du LibCurl einbinden willst, geht das über EXTERN bzw. DllCalls.
Herzlich,
Tom
RolandG
UDF-Programmierer
UDF-Programmierer
Beiträge: 88
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von RolandG »

OK - Danke Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Aber - warum machst Du das nicht über HttpClient?
Herzlich,
Tom
RolandG
UDF-Programmierer
UDF-Programmierer
Beiträge: 88
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von RolandG »

Hallo Tom,

mit HttpClient() funktioniert eine bestimmte URL nicht auf verschiedenen MS Server Versionen. Mit den Browsern geht es und mit CURL auch.
Auf Win 10/11 kein Problem.
Beim Suchen nach der Ursache hat der Alaska Support und ich schon einiges an Zeit verloren.

Zum Problem mit dem HttpClient() habe ich schon was an anderer Stelle geschrieben:
https://www.xbaseforum.de/viewtopic.php ... 30#p147330

die URL die nicht geht:
https://www.epexspot.com/en/market-data ... on_period=

Gruß
Roland
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9481
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 112 Mal
Danksagung erhalten: 380 Mal
Kontaktdaten:

Re: CURL per API einbinden?

Beitrag von Tom »

Hallo, Roland.

Ich bin ja begeisterter Chilkat-Nutzer, und die Online-Tools zu Chilkat haben auch einen Codegenerator, der aus CURL-Anfragen zum Beispiel (leicht zu transferierenden) Foxpro-Code macht.

https://tools.chilkat.io/curl
Herzlich,
Tom
Antworten