Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

URLDownloadToFile aus SUB aufrufen !?
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 18:50    Titel: URLDownloadToFile aus SUB aufrufen !? Antworten mit Zitat

Hallo!

Ich habe da eine kleines Problem mit dem Code aus den Beispielen.
Und zwar weiss ich nicht, wie ich den in mein Programm so reinklopfen
kann, dass ich die Funktion aus einer Sub heraus aufrufen kann traurig

Gibt es eigentlich auch eine Funktion, HTML-Seiten in eine Variable zu
speichern, um dann Information draus zu extrahieren? Bei meinem Prog
muss ich nämlich aus 50Seiten Infos Extrahieren, und die ewigen HDD-Zugriffe behagen mir nicht so...


Um Folgenden Beispielcode handelt es sich:
Code:
   

Dim URLDownloadToFile as function ( _
  ByVal pCaller As Long, _
  ByVal szURL As zString ptr, _
  ByVal szFileName As zString ptr, _
  ByVal dwReserved As Long, _
  ByVal lpfnCB As Long) As Long
                                                                   
Dim lR As Long
Dim sURL As String
Dim sFile As String
Dim library As Any Ptr


library=dylibload( "urlmon.dll" )
URLDownloadToFile=dylibsymbol(library, "URLDownloadToFileA" )

sURL = "http://www.freebasic-portal.de/index.php"

sFile = "C:\test.htm"

lR = URLDownloadToFile(0, sURL, sFile, 0, 0)

If lR = 0 Then
  Print "Download erfolgreich!"
Else
  Print "Fehler beim Download!"
End If


mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.01.2008, 18:55    Titel: Antworten mit Zitat

Nun, dann ist das was ich heut nacht gebaut hab, ideal für dich:
http://www.freebasic-portal.de/index.php?s=code&id=105
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 19:00    Titel: Antworten mit Zitat

Theoretisch ja, hab ich mir auch schon angeschaut!
allerdings läuft das hier bei mir nicht.
Schätze, weil wir über nen Proxy rausgehen, was beim URLDownloadToFile
komischerweise nix ausmacht...

-> "couldn't connect to host" bringt er da traurig


Zuletzt bearbeitet von SvenStueck am 08.01.2008, 19:01, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.01.2008, 19:00    Titel: Antworten mit Zitat

URLDownloadToFile verwendet die von windows vorgegeben einwahloptionen, wäre also kein wunder zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.01.2008, 20:05    Titel: Antworten mit Zitat

Mhm bei Gelegenheit sollt ich das mal ändern happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 20:17    Titel: Antworten mit Zitat

Was denn ändern?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.01.2008, 21:39    Titel: Antworten mit Zitat

Den Eintrag da, ist egtl ganz simpel, das um nen Proxyserver zu ergänzen.

Allerdings würde sich das dann auch in der Syntax ändern, und du musst deinen Proxy kennen, sonst wirds nix.
Dann baut die Sub eine Verbindugn zum Proxy an, übergibt ihr einen Header á la
Code:
GET /pfad HTTP/1.0
Host: <Der-gewünschte-Server>
Connection: close


Ich mach das einfach mal happy
Kann das aber hier nich testen, hab keinen Proxyserver, musst du als Opfer her happy

-- edit --
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=402
Bitte testen.
Syntax ist doch gleichgeblieben, aber du musst, bevor du httpget() oder httppost() nutzt, erst den Proxy festlegen:
Code:

proxy = "www.meinproxy.nett"
'falls der Port des HTTP-Proxys != 8080 ist, musst du auch noch
'proxyport = <was auch immer>
'einsetzen
[/code]

Zuletzt bearbeitet von PMedia am 08.01.2008, 21:43, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 21:42    Titel: Antworten mit Zitat

Na das wär ja hervorragend lächeln

Meinen (bzw. den in der Arbeit) proxy kenn ich...
über proxyconf kann man es nich machen, hmm?

Als Versuchskaninchen bin ich immer zu haben Zunge rausstrecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.01.2008, 21:44    Titel: Antworten mit Zitat

Nein, Systemdaten kann ich nich auslesen, dafür funzt die Lösung aber auch unter Win und Lin happy
Siehe Edit
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 22:12    Titel: Antworten mit Zitat

hmm, geht net...
der bringt jetzt "ip couldn't be resolved"
kann des damit zusammenhängen, dass wir in der arbeit
übers Intranet auf den proxy zugreifen?

ich geb im firefox z.b. quasi "proxy.blabla.blabla.com" ein... ohne http

EDIT: Blödsinn, "couldn't connect to host" bringt er! hab vorher an falschen proxy genommen!


Zuletzt bearbeitet von SvenStueck am 08.01.2008, 22:27, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 22:18    Titel: Antworten mit Zitat

ein bekannter meint grad, dass es sein kann, dass das des proxy keine HTTP 1.0 anfragen mehr erlaubt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 08.01.2008, 22:39    Titel: Antworten mit Zitat

hm gut, das kann sein. Es kann auch sein, dass ich lediglich irgendwo nen Fehler drin hab.
Mal jetz trotz aller RFCs, tausch mal die beiden "HTTP/1.0" durch "HTTP/1.1" aus...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 08.01.2008, 22:52    Titel: Antworten mit Zitat

Geht leider auch nicht mit dem Kopf durch die Mauer wollen
Wie inzwischen gewohnt: "Couldn't connect to host" weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 09.01.2008, 00:03    Titel: Antworten mit Zitat

Hm schade, dann kann ich dir auch nicht weiterhelfen... neutral
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 09.01.2008, 06:49    Titel: Antworten mit Zitat

grinsen Natürlich geht das nicht ...

@PM... wenn du über einen Proxy eine anfrage senden willst, kannst du nicht einfach den Proxy dort eintragen.

Mal zum verständnis der Technik.

Ein Proxy oder ein Socks sind Server/Client kombinationen die dafür sorgen, das man ins Internet kommt, wenn kein direkter zugang zu diesem besteht. (auch üfr andere dinge nützlich).

Das Prinzip dahinter ist einfach.
Computer A, der ins Internet möchte, verbindet sich mit dem Proxy auf Computer B. Dann sendet Computer A an B das er gerne eine verbindugn mit Computer C (im internet) herstellen möchte. Daraufhin baut B eine verbindugn mit C auf. Wenn diese Verbindung bestehtsendet B an A das die "Brücke" besteht, und er die Daten senden darf. Daraufhin schickt A an B die anfrage, welche B an C weiter vermittelt. Die Rückgabe von C wandert an B und von B nach A.

Folglich kann man nicht einfach den Proxy als Anfragehost eintragen, da sonst die Anfrage selbst an B geleitet wird, udn nicht an C. Da der Proxy jedoch nur eine Brücke ist, kann er damit natürlich rein garnichts anfangen und erzeugt einen Fehler. Darum gibt es eien Syntax die man einhalten muss.

Je nachdem welche art von Bridge (Brücke) es ist (Proxy / Socks) gibt es unterschiedliche Methoden die Brücke zu steuern.

Die folgenden Beispiele sind zwar in VisualBasic, jedoch leicht zu FB portieren.
Einmal um über eien PROXY (HTTP) zu verbinden:
http://www.activevb.de/tipps/vb6tipps/tipp0546.html

Und einmal über eine SOCKS4:
http://www.activevb.de/tipps/vb6tipps/tipp0564.html



Beide Tips lassen sich einfach anwenden, z.B. mit der TSNE_V2.bi
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=389

was dann so aussehen würde:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=404

Den aufbau des SOCKS request erspar ich mich jetzt mal, ich glaube nämlichnicht, das du eien SOCKS server betreibst. Wenn doch, dnan sollte das Protieren auch nicht weiter schwer sein. Ein Socks arbeite etwas anders, aber auch nicht weiter wild. Ein Socks kann z.B. auch andere Anfragen verwalten, und nicht nur HTTP requests, was nur HTTP_PROXYs können. Es gibt auch FTP_PROXYs, aber diese PROXYs sidn meist nur für ein protokoll nütlich. SOCKS hingegen können jedes Protokoll verarbeiten, welche dadurch auch eine andere ablaufsteuerung brauchen.

[EDIT]
@SvenStueck ... Kanst du den Administrator von eurer Firma mal fragen, was für eine art von Proxy das ist? .. HTTP_Proxy, SOCKS, usw.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 09.01.2008, 17:01    Titel: Antworten mit Zitat

Ohje, jetzt wirds aber langsam kompliziert zwinkern

@PuppetMaster: Isn Http Proxy!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 09.01.2008, 18:05    Titel: Antworten mit Zitat

Dann sollte das oben angegebene Beispiel funktionieren.
ThePuppetMaster hat Folgendes geschrieben:
...
Beide Tips lassen sich einfach anwenden, z.B. mit der TSNE_V2.bi
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=389

was dann so aussehen würde:
http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=404
...



MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 09.01.2008, 21:14    Titel: Antworten mit Zitat

Das klappt leider auch nicht.
bleibt bei "sende Anfrage" hängen!

nicht, dass die http1.0 Anfragen tatsächlich gesperrt haben...

seit kurzem hams uns ja auch icq gekappt böse
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 09.01.2008, 22:19    Titel: Antworten mit Zitat

dann solltest dich auf jeden fall mal beim Admin informieren. Vorallem, was genau das für ein PROXY ist ...


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 10.01.2008, 19:24    Titel: Antworten mit Zitat

Hmm, besser nicht... des mit dem Internet ist bei uns
eher...

Wie auch immer! Zumindestens dass URLDonwloadToFile geht jetzt
wieder. Bzw. ist die ganze Zeit gegange... is ne längere Geschichte Zunge rausstrecken

Aber die anderen Beispiele von euch wären natürlich viel interessanter!
Muss ich mal daheim testen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz