Dateiabruf über https Post in 1.9

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Benutzeravatar
ReneScharf
Rookie
Rookie
Beiträge: 9
Registriert: Fr, 03. Dez 2021 10:00

Dateiabruf über https Post in 1.9

Beitrag von ReneScharf »

Hallo

Ich benötige in einer 1.9 Anwendung den http / Post Formular Abruf und das Speichern einer Zipdatei
in 2.x sieht lauf Dokumentation bei Alaska die Funktion so aus

Code: Alles auswählen


#include "Common.ch" 
#pragma library("xpprt2.lib") 
proc main()
local n
  clear screen              
  ? GetZipFromWebformular("c:\temp\xyz.zip")
  inkey(0)
return

function GetZipFromWebformular(cZipPathAndFilename)
	local oHTTP, cError := "OK"
   
    oHTTP := HttpClient():new( "<URL>" )    
    oHTTP:httpRequest:setParameter( "action", "submit" ) 
    oHTTP:setMethod( "POST" ) 
    oHTTP:getFile( "cZipPathAndFilename" ) 
	IF oHTTP:getStatusCode() != 200 
	  cError := "Fehler: " + oHTTP:httpResponse:statusText
	ENDIF   

return cError

Das das Programm jedoch 1.9 verwendet lässt es sich so nicht compilieren
TEST.obj: error ALK2102: unresolved external symbol HTTPCLIENT
ALINK: fatal error ALK4102: 1 external symbols unresolved

Hat mir jemand einen Link zu einem Post der so etwas in 1.9 macht?
Vielleicht bin ich auch zu ungeschickt beim suchen, jedoch finde ich es nicht.

Vielen Dank und Grüße
René
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15784
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 86 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Dateiabruf über https Post in 1.9

Beitrag von brandelh »

ich weiß es nicht sicher, aber ich habe mit LoadFromURL() früher viel geladen, ob das bei dir auch geht kannst probieren.

https://doc.alaska-software.com/content ... romurl.cxp
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9848
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 136 Mal
Danksagung erhalten: 470 Mal
Kontaktdaten:

Re: Dateiabruf über https Post in 1.9

Beitrag von Tom »

HttpClient gab es m.E. noch nicht in der 1.9, oder?

Alternativ zu LoadFromUrl(), das meiner Erinnerung nach auch Probleme mit SSL hatte, könnte man Xb2.Net nutzen.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14884
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 36 Mal
Danksagung erhalten: 120 Mal
Kontaktdaten:

Re: Dateiabruf über https Post in 1.9

Beitrag von Jan »

Stimmt. In 1.9 gab es LoadFromUrl, das aber erst mit der 2.0 so aufgebohrt wurde das man es unter aktuellen Gegebenheiten umfangreich nutzen konnte (davon hatte ich damals profitiert, deswegen kann ich mich noch erinnern). Bis es dann sehr schnell deprecated wurde, weil es den HttpClient gab. Der noch mehr kann. Wenn ich mich recht erinnere wurde aber selbst der später noch erweitert, damit der alle aktuellen SSL-Spielarten konnte.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 819
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 13 Mal
Danksagung erhalten: 21 Mal

Re: Dateiabruf über https Post in 1.9

Beitrag von azzo »

Könnte man vielleicht curl verwenden?
Benutzeravatar
ReneScharf
Rookie
Rookie
Beiträge: 9
Registriert: Fr, 03. Dez 2021 10:00

Re: Dateiabruf über https Post in 1.9

Beitrag von ReneScharf »

brandelh hat geschrieben: Fr, 31. Jan 2025 10:11 ich weiß es nicht sicher, aber ich habe mit LoadFromURL() früher viel geladen, ob das bei dir auch geht kannst probieren.

https://doc.alaska-software.com/content ... romurl.cxp
OK Mein Abruf liefert eine zip.Datei

Wie leite ich den jetzt in eine gespeicherte Datei um.

und Verzeihung wenn ich so blöd frage ich bin in dem xbase nicht so tief drin.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15784
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 86 Mal
Danksagung erhalten: 43 Mal
Kontaktdaten:

Re: Dateiabruf über https Post in 1.9

Beitrag von brandelh »

du meinst das Ergebnis von LoadFromUrl() liefert eine Zip Datei die in deiner Variablen liegt ?

wenn ja, dann mit StrFile()

https://doc.alaska-software.com/content ... trfile.cxp

Beispiel:

Code: Alles auswählen

cBuff := LoadFromUrl(...)
n = len(cBuff)
if n = StrFile(cBuff, "d:\irgendwo.zip")
   ? "Datei wurde komplett geschrieben"
else
   ? "Fehler ?"
endif 
Gruß
Hubert
Benutzeravatar
ReneScharf
Rookie
Rookie
Beiträge: 9
Registriert: Fr, 03. Dez 2021 10:00

Re: Dateiabruf über https Post in 1.9

Beitrag von ReneScharf »

Sorry Leute ich bin ja wirklich geduldig, jedoch was dieses xBase da treibt ist wirklich zum Verzweifeln

nachdem das mit den Möglichkeiten in der 1.9 nicht funktionieren will hab ich mir gedacht probieren wir doch mal die 2.x und dem Beispiel aus der Beschreibung in https://doc.alaska-software.com/content ... client.cxp

ein
oHTTP := HttpClient():new( cCGI_SERVER_URL )
oHTTP:setMethod( "POST" )
oHTTP:httpRequest:setParameter( "action", "submit" )
oHTTP:getFile( "mein.zip" )

führt zu einer getähnlichen Ausführung ( parameter in der url) und nicht zu einem korrekten Post
Apache
"POST /hk/hkgettrdaten.php?action=submit"

das hat jedoch so auszusehen

"POST /hk/hkgettrdaten.php

Was übersehe ich?
Das php erhält auch keine PostVariablen
if (isset($_POST['action']) => ist false

auch ein Umweg über
oHTTP := HttpClient():new( cCGI_SERVER_URL )
oHTTP:setMethod( "POST" )
oHTTPReq := HTTPRequestMessage():new(cCGI_SERVER_URL)
oHTTPReq:setMethod( "POST" )
oHTTPReq:setParameter( "action", "submit" )
result := oHTTP:send(oHTTPReq)

ändert nicht daran wie das an den Server geschickt wird.
RolandG
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 360
Registriert: Mi, 09. Jan 2019 16:02
Wohnort: Neresheim
Hat sich bedankt: 2 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

Re: Dateiabruf über https Post in 1.9

Beitrag von RolandG »

ReneScharf hat geschrieben: Fr, 14. Feb 2025 11:42 Sorry Leute ich bin ja wirklich geduldig, jedoch was dieses xBase da treibt ist wirklich zum Verzweifeln
...und mit so einer pauschalen Frust-Aussage erwartest Du Unterstützung von (alten) Xbase++-Programmierern...?
Gruß
Roland
Benutzeravatar
azzo
1000 working lines a day
1000 working lines a day
Beiträge: 819
Registriert: So, 28. Mär 2010 19:21
Hat sich bedankt: 13 Mal
Danksagung erhalten: 21 Mal

Re: Dateiabruf über https Post in 1.9

Beitrag von azzo »

Hallo,
kannst du damit einmal probieren:

Code: Alles auswählen


oHTTP := HttpClient():new( cCGI_SERVER_URL )    
oHTTP:setMethod( "POST" )
oHTTP:httpRequest:setContent( "action=submit" )  // Setzt die Daten als POST-Body
oHTTP:httpRequest:setHeader( "Content-Type", "application/x-www-form-urlencoded" )  // Standard-Form-POST
result := oHTTP:send()

 
Hast du auf das PHP, das antwortet, Zugriff bzw. kannst du dort ein erweitertes Logging einbauen, damit man prüfen könnte, was tatsächlich als Request ankommt?

LG
Otto
Benutzeravatar
ReneScharf
Rookie
Rookie
Beiträge: 9
Registriert: Fr, 03. Dez 2021 10:00

Re: Dateiabruf über https Post in 1.9

Beitrag von ReneScharf »

Danke ich probiere es aus und ja ich hab da lokaler Testserver kompletten zugriff, weshalb ich ja auch sehe dass keine Postvariablen ankommen.
Antworten

Zurück zu „Newbie“