Deutsch
Forum

HTTP Download

 

Georg
Hovenbitzer
Hallo zusammen,

in meinem Programm ziehe ich mir Dateien per HTML runter, bis dato habe ich es immer mit der URLMON.DLL gemacht:
UrlDownLoad(0,@Addr(GetPfad$),@Addr(SaveDatei$),0,0)
Dies reichte mir vollkommen aus, nur stelle ich im Moment fest, dass es Links gibt wo folgender Fehler kommt:
-2147221020 The address of this site is not valid. Check the address and try again.

Z.B. bei: link illegal und entfernt

Mit der download.pcu von If und per Browser klappt der Download

Da ich das Programm aber gerne mit Profan2CPP übersetzen möchte, ist die PCU keine Lösung für mich.

Hat jemand einen Tip woran es liegen kann und gibt es noch andere Möglichkeiten für den Download.
Ach ja, mit DoFileDownload aus der shdocvw.dll habe ich es auch versucht, führt aber unter XP zu einem Rechteproblem.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 




Georg
Hovenbitzer
Ich habe mal ein Demo gebaut:
KompilierenMarkierenSeparieren
Declare Get$
Declare Put$
Declare Error&
Get$ = --- kommt ein neuer, damit es keine Ärger gibt ---
Put$ = "D:\Test1.txt"
Error& = @External("urlmon.dll","URLDownloadToFileA",0,@Addr(Get$),@Addr(Put$),0,0)
Print Error&
WaitInput
Get$ = "https://www.google.de/intl/de_de/images/logo.gif"
Put$ = "D:\Test2.txt"
Error& = @External("urlmon.dll","URLDownloadToFileA",0,@Addr(Get$),@Addr(Put$),0,0)
Print Error&
WaitInput
End

Die erste Datei wird nicht gezogen, die zweite schon.
Ich habe ein Demo in VB6 gefunden, die nichts anderes macht als ich und in diesem wird auch die erste Datei gesaugt.

Kann es sein, dass das große HTTP im Link stört oder muss man den Link Umwandeln und wenn ja in was

Über jeden Tip bin ich dankbar.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 



Nun auf jeden Fall sehe ich nicht das Du den Cache leerst vor dem Download.
 
24.05.2006  
 



Habs grad mal rausgesucht:
KompilierenMarkierenSeparieren
external("wininet.dll","DeleteUrlCacheEntryA",addr(url$))

Ich bin mir auf Anhieb auch nicht sicher ob urldownloadtofile es mag wenn get$ existiert.
 
24.05.2006  
 




Georg
Hovenbitzer
Hi iF,

was hat der Cache damit zu tun

Der Fehler Code ist ja -2147221020, The address of this site is not valid. Check the address and try again, hört sich nach einem Linkfehler an, dieser klappt also.
Daher die Frage ob er umgewandelt werden muss ?!
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 




Georg
Hovenbitzer
Danke iF,

geht aber leider auch nicht nach dem Löschen des Cachs, gleicher Fehler.

Das muss doch gehen, ich habe im Internet auch nichts gefunden was dagegen spricht.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 



[quote:8eeb58dfe0]was hat der Cache damit zu tun gruebel [/quote:8eeb58dfe0]
Urldownloadtofile läd nur wenn das File nicht bereits im Cache liegt.

Drum entleere erst den Cache und schau ob die Fehlernummer gleich bleibt.

Zur Umwandlung: Du kannst die URL umwandeln indem Du die Hexcodes der Chars im String geführt von einem Prozentzeichen hintereinander schreibst. Bei diesen sonderzeichen in Deiner Url wäre das auch empfehlenswert.

Aus dem Freizeichen wird dann z.B. %20, und aus dem grossen A ein %41 usw.usw...
 
24.05.2006  
 




Georg
Hovenbitzer
Hallo iF,

Cache Löschen eingebaut und auch mal mit der Umwandlung probiert, aber leider geht es immer noch nicht.

Aber, wenn man den Code mit Profan2CPP übersetzt klappt alles
Also eher ein Profan internes Problem.

Witzig ist, wenn man wie ich es muss, in den Cpp Code die von Sebastian vorgegebenen Define Einträge macht, klappt es mit der ersten Datei nicht mehr, aber mit der zweiten.

Profan und Profan2CPP haben dann die gleichen Probleme mit der gleichen Fehlernummer.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 




Clemens
Meier
Was mir auffällt ist, dass die erste URL Leerzeichen enthält. Man sollte grundsätzlich URLs, von denen man nicht 100% weiss, dass sie korrekt sind, durch einen Encode jagen, bevor man sie benutzt. Anbei zwei Prozeduren. Die 1. kodiert den Pfad (Pfad vorher von der Domain trennen), die 2. ist eine Hilfsprozedur. Probiere es also mal damit.
KompilierenMarkierenSeparieren
PROC URLPathEncode

    Parameters string$
    declare i&,char%,urlpathencode$
    urlpathencode$ = string$

    WhileLoop len(urlpathencode$),1,-1

        char% = ord(mid$(urlpathencode$,&loop,1))

        if ((char%>96) AND (char%<123))

        elseif ((char%>47) AND (char%<58))

        elseif ((char%>64) AND (char%<91))

        elseif ((char%>44) AND (char%<48))

        elseif (char% = 95)

        elseif (char% = 126)

        elseif (char% = 38)

        elseif (char% = 58)

        elseif (char% = 63)

        elseif (char% = 64)

        elseif (char% = 35)

        elseif (char% = 33)

        elseif (char% = 36)

        elseif (char% = 42)

        elseif (char% = 43)

        else

            if (&loop=1)

                urlencode$ = "%" + hexx(char%) + mid$(urlencode$,&loop+1,len(urlencode$))

            elseif (&loop=len(urlencode$))

                urlencode$ = left$(urlencode$,&loop-1) + "%" + hexx(char%)

            else

                urlencode$ = left$(urlencode$,&loop-1) + "%" + hexx(char%) + mid$(urlencode$,&loop+1,len(urlencode$))

            endif

        endif

    Wend

    return urlpathencode$

ENDPROC

PROC hexx

    Parameters zahl&

    if (zahl&>15)

        return hex$(zahl&)

    else

        return "0"+hex$(zahl&)

    endif

ENDPROC


P.S. Ich bin offenbar blind. Wo sind da Leerzeichen. Habe doch glatt die Punkte übersehen. Dennoch lohnt es sich, Pfade zu kodieren. Meines Wissens nach macht dies die urlmon nämlich nicht und bei einem Zugriff auf einem ix-Server kommt es zu Fehlermeldungen.
 
XProfan 9.1; XP SP2; FF; Editpad
24.05.2006  
 




Georg
Hovenbitzer
Hallo Clemens,

danke für den Code (ich hatte es radikaler gemacht und alles umgewandelt), aber leider gibt es dadurch keine Veränderung. Da es in der URL auch keine Zeichen gibt die umgewandelt werden müssten.
Ich würde sagen, dies ist ein Problem von Profan selbst, da es in CPP übersetzt ja alles klappt.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
24.05.2006  
 



@Georg: Aber mal was Anderes - der Torrentlink ist illegal?!?! Wenn ja, entferne den - auch aus dem Source!

Ich will hier keine Links zu Dingen welche lt. Nutzungsbedingungen ausdrücklich verboten sind.

Ich möchte auch keine Diskussion. Wenn der Link legal ist, dann kannst Du ihn natürlich einfach belassen - aber begründe kurz warum.

Danke!
 
24.05.2006  
 




RGH
[quote:3398313431=Georg Hovenbitzer]Ich würde sagen, dies ist ein Problem von Profan selbst, da es in CPP übersetzt ja alles klappt.[/quote:3398313431]
Wohl kaum! Bei mir läuft Dein Demo aus dem 2. Post unverändert völlig fehlerfrei und lädt beide Dateien!
(XProfan 10ß, 11. Subscriptionslieferung)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
24.05.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.028 Betrachtungen

Unbenanntvor 0 min.
H.Brill19.02.2023
Andre Rohland10.01.2020
Stephan Sonneborn20.11.2019
Thomas Freier16.07.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie