Entwickler-Ecke
Internet / Netzwerk - Zwei Indy Instanzen zum Download einer Datei ?
Blamaster - Mo 26.07.10 15:01
Titel: Zwei Indy Instanzen zum Download einer Datei ?
Hi,
ich nutze momentan 2 Indy Instanzen eine in einer dll die Andere im Hauptprogramm.
Die Indy in der dll bereitet den Downloadlink vor. Liest ihn aus usw.
Die im Hauptprogramm soll dann nur noch den vorbereiteten Link aus der dll laden.
Problem ist dabei, das der Server von dem geladen werden soll den Download mit der zweiten Indy nicht akzeptiert und eine 'HTTP 1.1/403 forbidden' wirft.
Wenn ich den Link gleich mit der ersten Indy lade funktioniert alles.
Welche Daten muss die Erste der zweiten Indy übergeben damit der Download auch mit dieser klappt ?
Mfg Blamaster
glotzer - Mo 26.07.10 17:18
versuche es doch einfach...
Blamaster - Mo 26.07.10 17:26
Hi,
probieren wird schwer wenn man keinerlei Idee hat welche Daten von Relevanz sein können.
Mfg Blamaster
Narses - Mo 26.07.10 18:09
Moin!
Ich rate mal: die Cookies sind in der zweiten Instanz nicht gesetzt? :nixweiss: Gemeinsamen CookieManager einbinden. :idea:
cu
Narses
jaenicke - Mo 26.07.10 19:48
Das dürfte bei einer DLL schwierig werden, da aufgrund des unterschiedlichen Speichermanagers das nicht so einfach geht.
Insofern ist es vermutlich am sinnvollsten einmal im Browser zu schauen was da eigentlich übertragen wird usw. (z.B. mit FireBug, HttpFox, ...) und dann gezielt diese Daten mit aus der DLL zu holen.
Blamaster - Mo 26.07.10 22:28
Genauer gesagt geht es um das laden eines Youtube Videos.
Die dll fordert den Link an liest die benötigten Daten aus dem Quellcode und baut daraus den Downloadlink zusammen.
Wenn ich den nun aus dem Programm kopiere und ihn bei Mozilla einfüge wird das Video auch direkt geladen. Wenn ich den Link jetzt allerdings vom Hauptprogramm mit indy lade, kommt der Zugriffsfehler.
Was für einen Referer hat man eigentlich bei den indys garkeinen oder ?
Mfg Blamaster
jaenicke - Mo 26.07.10 22:36
Du hast auch keinen Referrer, wenn du den Link im Browser direkt einfügst.
Du musst eben mal vergleichen was im Browser übertragen wird und bei dir nicht. :nixweiss:
Dafür gibt es neben den oben genannten Tools auch z.B. WireShark.
Verdächtige gibt es einige, sei es der UserAgent oder andere Daten.
Blamaster - Di 27.07.10 01:24
Ich habe ebend mal gesnifft. Folgendes kam dabei raus.
Link den mir das Plugin zusammensetzt worauf danach das Get der indy angewendet wird:
Log von meinem Programm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| GET /videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor%2Coc%3AU0dXRVJMTl9FSkNNN19KRlJF&fexp=900064&algorithm=throttle-factor&itag=5&ipbits=0&burst=40&sver=3&expire=1280210400&key=yt1&signature=D183CC1DD8772587BA93A287B714DC978B85421F.61102AEC10F463FC0971E4D98932A1B1A6B199A4&factor=1.25&id=2e48e58c13532ece HTTP/1.1 Host: v9.lscache7.c.youtube.com Accept: text/html, */* Accept-Encoding: identity User-Agent: Mozilla/3.0 (compatible; Indy Library) Authorization: Basic Og==
HTTP/1.1 403 Forbidden Content-Type: text/plain Connection: close X-Content-Type-Options: nosniff Date: Mon, 26 Jul 2010 23:14:31 GMT Server: gvs 1.0 |
Und der Log wenn ich obigen Link direkt in den Browser einfüge:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| GET /videoplayback?ip=89.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=900064&algorithm=throttle-factor&itag=5&ipbits=8&burst=40&sver=3&expire=1280210400&key=yt1&signature=71189EB2031AF583713BAAE33CE325AFA3E23B8C.1E22CFBB20CE84098DEC5550DD82358AEE61E3D7&factor=1.25&id=2e48e58c13532ece HTTP/1.1 Host: v9.lscache7.c.youtube.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive
HTTP/1.1 200 OK Last-Modified: Thu, 10 Jun 2010 13:32:51 GMT Content-Type: video/x-flv Content-Length: 5456366 Connection: close Expires: Tue, 27 Jul 2010 05:55:00 GMT Cache-Control: private,max-age=24009 X-Content-Type-Options: nosniff Date: Mon, 26 Jul 2010 23:14:51 GMT Server: gvs 1.0 |
Wodurch kann das zustande kommen ?
Mfg Blamaster
Edit.
Hat sich erledigt. Der Fehler lag bei mir habe ausversehen eine URL Decode Funktion zweimal auf den Link angewandt :oops:
Danke trotzdem für die Hilfe :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!