LoadFromUrl() - Alaska-Version

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

Moderator: Moderatoren

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Jan »

Hubert,

genau das war inzwischen auch mein Gedanke. Das ? hat ja in einer URL durchaus seinen Sinn, und das maskieren kommt erst dann zum Tragen, wenn es diesen Sinn nicht haben soll.

Ich habe jetzt mal einfach eine Mail an Alaska geschickt. Und parallel schaltet sich gerade der Supporter des Servers dadrauf, um mir mal den Logeintrag zu geben. Ich bin gespannt ... auf beides ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von brandelh »

ich habe das mal hier ausprobiert, mit LOCALHOST:80 ...

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#pragma Library( "Asinet10.lib" )
PROCEDURE Main()
   cURL := "http://user:kennwort@192.168.2.227:8080/search/?archive=BennoContainer&query=((Sender:'wer@auchimmer.de') AND (Recipient:weranderes@auchimmer.de))&filterQuery=(*)&limit=50000&full=(true)"
   cURL := "http://user:kennwort@127.0.0.1:80/search/?archive=BennoContainer&query=((Sender:'wer@auchimmer.de') AND (Recipient:weranderes@auchimmer.de))&filterQuery=(*)&limit=50000&full=(true)"
   set alternate to Info.txt
   set alternate on
   cURL := UrlEncode(cUrl)
   ? LoadFromUrl( cURL )
   ? "Gleich ? ","GET /search/?archive=BennoContainer&query=((Sender:%27wer@auchimmer.de%27)%20AND%20(Recipient:weranderes@auchimmer.de))&filterQuery=(*)&limit=50000&full=(true)" == ;
                 "GET /search/?archive=BennoContainer&query=((Sender:%27wer@auchimmer.de%27)%20AND%20(Recipient:weranderes@auchimmer.de))&filterQuery=(*)&limit=50000&full=(true)"
   // Beide Strings sind gleich ! Rückgabe .t.
   set alternate to
return
function UrlEncode(cUrl)
   cUrl := strTran(cUrl," ","%20")
   cUrl := strTran(cUrl,"'","%27")
return cUrl
Unten vergleiche ich den Inhalt der LOG Datei, beide Aufrufe sind identisch, es kann also nicht an der cURL liegen, solange man die Blanks und ' ausgetauscht hat.
Bei mir kommt natürlich, dass er mit dem Ganzen nichts anfangen kann ... aber das ist klar.

Was könnte noch unterschiedlich sein ?

Ein Browser übergibt META Daten (wer ist es etc.) - wenn die diese auswerten und nur bekannte Browser berücksichtigen hast du ein Problem.
Der Aufruf als solcher verwundert mich allerdings, weil er kein PHP oder so angibt und der Befehl "/search/" von der Syntax eher ein Verzeichnis ist.

Aber das kann nur der Betreiber des Servers wissen.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Jan »

... wieder einmal bin ich leicht geplättet ...

Der Supporter hat mir den Dump geschickt von dem, was bei dem Server ankommt.

Erstens kommt der Port nicht mit. Nur wenn ich den in der IP weg lasse und als zweiten Parameter mitgebe.

Und zweitens gibt der ein 401 unauthorized zurück! Wenn ich den Port in der IP weg lasse und als zweiten Parameter mit gebe.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: LoadFromUrl() - Alaska-Version

Beitrag von georg »

Hallo, Jan -


machen wir mit Username und Passwort weiter. Du hast beide (hoffentlich) verändert, als Du sie hier gepostet hast. Kann es sein, dass sie Sonderzeichen enthalten? Dann müsstest Du Benutzername bzw. Passwort auch entsprechend encodieren, das wäre z.B. der Fall, wenn das Passwort "p@sswort" laufen würde.

Wenn das der Fall ist, erhält der Server ein falsches Passwort und gibt daher einen 401 zurück.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Jan »

Hallo Georg,

nein, wieso sollte ich die Zugangsdaten vor dem Posten hier verändern??? :roll: :roll: :banghead:

Und nein, beides sind rein Buchstaben und Ziffern.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Jan »

Till hat gerade bestätigt, das es einen Fehler in LoadFromUrl() bzw. in der Doku gibt. Ein Port, der per : hinter die url geschrieben wird, wird ignoriert. Nur die Portangabe als 2. Paramater wird berücksichtigt.

Das ist schon mal ein wichtiger Punkt, aber noch nicht die Gesamtlösung. Ich halte Euch da auf dem laufenden.

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: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Tom »

Hallo, Jan.

Ich weiß, Du bist kein Freund von 3rdParty, aber ich mache solche Dinge und sehr viele andere webbasierte, und ich hätte wahrscheinlich schon grüne Haare, wenn ich hierfür irgendwas aus den Alaska-Bibliotheken verwenden würde. Das scheint nach meinem Eindruck immer nur bis zu einer gewissen Schicht oder in einer bestimmten Verwendungsart verlässlich zu sein, und wenn man sich ein paar Mikrometer wegbewegt eben nicht mehr (von CXP und WAA abgesehen, was ich beides bislang nicht ausprobiert habe). Xb2.Net ist mein Freund. Da funktioniert alles, und zwar immer - und äußerst stabil. Unter anderem ein Multiserver, der einige SOAP-Services hostet, dazu FTP, HTTP und weitere Dinge. Der läuft bei einigen Kunden jahrelang ohne Unterbrechung. Und auch die clientseitigen Funktionen sind ähnlich verlässlich - und simpel in der Anwendung. Dazu alle möglichen En- und Decodierungstools nebst automatischer Konvertierung.

Dies nur am Rande.
Herzlich,
Tom
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: LoadFromUrl() - Alaska-Version

Beitrag von georg »

Hallo,


und aus Gründen, wie Tom sie anführt, habe ich vor langer, langer Zeit auf wget umgestellt. Für das frei erhältliche Kommandozeilentool habe ich eine Klasse geschrieben mit der man wget einfach und schnell einbinden kann.

Und wget ist SCHNELLER, trotz Aufrufoverhead, als LoadFromURL(), so zumindest meine Vergleiche vor ein paar Jahren. Seitdem hat Alaska an LoadFromURL() nichts geändert!
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von brandelh »

Jan hat geschrieben:Till hat gerade bestätigt, das es einen Fehler in LoadFromUrl() bzw. in der Doku gibt. Ein Port, der per : hinter die url geschrieben wird, wird ignoriert. Nur die Portangabe als 2. Paramater wird berücksichtigt.
und da das immer wieder und in allen Bereichen vorkommt, empfehle ich immer andere Wege auszuprobieren (z.B. es mit Phils Klasse zu versuchen),
auch wenn das mit dem Port als 2. Parameter hier nicht von mir ist. Aber JAN, du zeigst dich häufig als "Beratunsresistent" ;-)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von Jan »

Moin Hubert,

ich bin nicht beratungsresistent, ich bin dickköpfig!

Erstmal, warum ich das mit dem Alaska-LoadFromUrl() überhaupt starte: Ich arbeite für diese Funktionalität zur Zeit mit einer Klasse von Pablo, die ist kompliziert und lahm. Ich arbeite an anderer Stelle auch mit Phils LoadFromUrl(), die ich da soweit abgespeckt habe, das ich die XbpCre nicht mehr brauche. Für diesen Fall jetzt aber brauche ich Phils Klasse vollständig, und damit auch wieder eine Zusatzbibliothek mehr. Und wie Tom ganz richtig anmerkt bin ich ein Anhänger davon, möglichst alles als native Xbase++-Funktion oder als für mich einbindbaren Code zu nutzen.

Und zweitens: Wenn in Xbase++ schon eine Funktion enthalten ist die genau das machen kann was ich brauche - warum soll ich die zum Donnerwetter nicht auch benutzen? Wenn dann in all den Jahren niemand jemals gemerkt hat das die Doku falsch ist dann ist das natürlich mehr als ärgerlich. Und wenn der Rest der Doku so spartanisch ist das etwas ausführlichere Nutzungen in keinster Weise erläutert werden, dann ist das ebenfalls ärgerlich. Leider hat Alaska die Doku in der 2.0 auch nicht viel besser gemacht. Wenn jetzt meine Anfrage bei Alaska dazu führt, das 1) die Funktion korrigiert wird und 2) die Doku verbessert wird, dann ist doch schon einiges gewonnen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: LoadFromUrl() - Alaska-Version

Beitrag von georg »

Hallo, Jan -


ich kann Dich verstehen. Aber wie sagen wir bei uns in der Eifel, "da kann man auch einen Ochsen ins Horn kneifen", will sagen: die Korrektur kommt (wenn sie kommt) zu einem Zeitpunkt, wo ich schon etliche Projekte weiter bin.

Da wget kostenfrei verfügbar ist, würde ich Dich einfach mal auf meinen Beitrag hier hinweisen:

http://www.xbaseforum.de/viewtopic.php? ... get#p87525

Vielleicht hilft Dir das ja weiter, bis Alaska LoadFromURL() gefixt hat.

Als Hose würde LoadFromURL() überall zwicken, weil zu kurz genäht. Alleine die fehlende Unterstützung von Cookies ist schon ein Problem an sich, das mich damals dazu gebracht hat, auf wget umzusteigen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: LoadFromUrl() - Alaska-Version

Beitrag von Manfred »

hm,

an jeden neuen Auto sind Felgen montiert. Das ist gut so. Ich kann aber nicht sagen, die gefallen mir nicht, aber wenn der Hersteller schon Felgen drauf packt, dann bitteschön welche, die mir auch gefallen. In dem Fall gibt es Radmuttern, die kann man lösen und so die Felgen austauschen, gegen die, die einem gefallen. Wenn man das nicht will, dann läßt man es halt, aber man sollte das Knöttern darüber einstellen und nicht hoffen, dass der Hersteller irgendwann einmal meine Lieblingsfelgen liefert. :wink: :badgrin:
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LoadFromUrl() - Alaska-Version

Beitrag von brandelh »

Ich meine sogar etwas von coockies in der Xbase 2.0 Doku gelesen zu haben.
Mit der Asinet kam ich lange aus und da die in der Prof. Sub. enthalten war hatte ich die "sowieso".

Allerdings ist die FTP Klasse so eingeschränkt, dass ich mich bei Marshall bedient habe,
ebenso mit der eMail, als SSL nötig wurde - da wurde jetzt unter 2.0 nachgebessert ...

Grundsätzlich könnte man ja alles mit der ot4xb und den Windowsfunktionen nachbauen (Phils Classe könnte da helfen),
aber ich musste feststellen, dass vieles davon doch sehr "speziell" ist und man nicht nur die Windowsklassen durchforsten muss,
sondern auch noch die RFCs verstehen. Dazu habe ich weder Zeit noch Lust und eine sauber dokumentierte
Windows DLL läuft mit JEDER Xbase++ Version.
Gruß
Hubert
Antworten