Schrift
[thread]7703[/thread]

HTTP mit LWP (Seite 2)

Leser: 1


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
ptk
 2006-02-15 00:41
#62892 #62892
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=jmb,14.02.2006, 09:20]@ptk: same thing: zcat wuerde ich gerne nutzen, aber das ist doch hauptsaech auch fuer das oeffnen von files, ich bekomme meinen binaeren inhalt jedoch auf einem netzwerk stream.[/quote]
Wo ist der Unterschied? Mach doch einfach ein
Code: (dl )
open my $fh, "| zcat"
und printe deinen Netzwerkstream rein.
jmb
 2006-02-15 09:39
#62893 #62893
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
das problem ist, dass ich wie gesagt binaere und ascii zeichen im network stream habe, ich kann daher leider den filehandle nicht im binmode oeffnen. zweitens koennte es ein wenig langsam sein, wenn ich bei jeder einkommenden http verbindung ein systemtool aufrufe, befuerchte ich.
Dubu
 2006-02-15 11:06
#62894 #62894
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=jmb,14.02.2006, 09:42]1) Entfernen aller Header Zeilen (würde die Begin Tags aller HTTP 1.1 ''Schlagwörter'' nehmen und die dazugehörigen Zeilen herausfiltern
[/quote]
Was hast du da mit "Schlagwörtern"? Alles bis zur ersten Leerzeile ist Header, alles danach ist Content. Punkt.

Quote
2) Neuer Inhalt an uncompress übergeben, auswerten, verarbeiten, packen

Erstmal: Am Header Content-Encoding herausfinden, ob und wie der Content komprimiert ist (gzip, compress, deflate). Nur dann an uncompress oder was auch immer übergeben, wenn es auch passend komprimiert ist. (Du kannst nicht gemischt komprimierte und unkomprimierte Daten an uncompress übergeben und erwarten, dass es rät, was der Inhalt ist.)

Quote
3) in einen skalar zusammen mit dem header schreiben und wieder assemblieren (tcp-ip-ethernet)

Dabei aber nicht vergessen, den Header anzupassen!
Einerseits Content-Encoding, andererseits Content-Length (falls vorhanden) und Content-Range (falls vorhanden).

Vielleicht wäre es sinnvoll, erstmal RFC 2616 zu lesen ...
jmb
 2006-02-15 14:45
#62895 #62895
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
Quote
Was hast du da mit "Schlagwörtern"? Alles bis zur ersten Leerzeile ist Header, alles danach ist Content. Punkt.


So einfach ist es leider nicht. Ein HTTP stream kann mehrere header beinhalten, die unterschiedliche content typen (gzip, image...) einleiten. das mit dem leerzeichen ist wohl wahr (auf die idee bin ich auch schon bekommen). Problem bei mehreren Headern in einem flow ist jetzt leider nur, dass auch der normale kontent leerzeilen haben kann und DAS macht die sache unter anderem so schwierig.

jetzt koennte ich ja, wenn es im header angegeben ist, auch die anzahl der bytes, die der folgende content beinhaltet lesen, leider ist das nicht immer angebeben.

von daher ist die ganze sache nicht ganz so einfach.

jmb
Crian
 2006-02-15 15:05
#62896 #62896
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Das klingt so sehr nach einem schon gelösten Problem, dass ich mal auf cpan schauen würde. selbst wenn du keine Module verwenden willst, kannst du ja vielleicht Techniken übernehmen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
jmb
 2006-02-15 15:12
#62897 #62897
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
ja, module wuerde ich gerne verwenden. hab mal mit http::message und header versucht und ihnen als objekt die variable gegeben, in der der inhalt des tcppaketes steht, klappt aber nicht ;( kann aber auch ein fehler an meiner seite sein.... code muesste oben stehen... danke jmb
renee
 2006-02-15 15:18
#62898 #62898
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht solltest Du Dir eher mal CPAN:HTTP::Response anstatt CPAN:HTTP::Message anschauen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
jmb
 2006-02-15 15:26
#62899 #62899
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
hmm, danke, ist auf jeden fall einen versuch wert. komm erst morgen dazu, muss heute noch was anders feritg machen - werde mich aber sicherlich morgen melden - bis dahin ist kritik + losungsvorschlaege sehr willkommen ;)

thx
jmb
ptk
 2006-02-15 21:36
#62900 #62900
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=jmb,15.02.2006, 08:39]das problem ist, dass ich wie gesagt binaere und ascii zeichen im network stream habe, ich kann daher leider den filehandle nicht im binmode oeffnen.[/quote]Doch. Du musst den FH immer im binmode öffnen und die notwendigen Konvertierungen selbst vornehmen
Quote
zweitens koennte es ein wenig langsam sein, wenn ich bei jeder einkommenden http verbindung ein systemtool aufrufe, befuerchte ich.

Du musst dich schon entscheiden. Wenn du keine gesonderten Prozesse aufrufen willst, dann musst du auf Compress::Zlib zugreifen. Wenn es ein allgemeines Tool werden soll, kann man das leicht abfangen:
Code: (dl )
1
2
3
4
if (!eval { require Compress::Zlib; 1}) {
warn "No Compress::Zlib installed, fallback to slower zcat operation mode...\n";
....
}
jmb
 2006-02-15 23:54
#62901 #62901
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
ja, das mit den konvertierungen ist mir (leider) auch klar. Hab es bis jetzt leider nur noch nicht so schoen loesen koennen, da ich ja (das ist eines meiner Hauptprobleme) ja auch die Bilder und den ganzen Multimedia Overhead (Video Streams oder Audio in der Webseite) auch herausfiltern und der richtigen Konvertierungsroutine uebergeben muss. Ferner hab ich noch das Problem, dass ich in der Datei, in der mein Inhalt steht keine New Lines habe (daher der Ansatz bis zum ersten "nicht Header Statetemen" zu lesen)...

Das mit der Zlib oder anderen Modulen ist nicht so schlimm. Will die Module sehr gerne nutzen. Da ich selbst bestimme, wie die Installation "vor Ort" aussieht, ist das kein Problem.

Sobald ich das naechste Mal "Luft" habe, gehe ich die Sache nochmal an.

Da fällt mir noch eine Frage ein:
Das HTTP::Response Modul: Wie geht das mit Vidio Streams in der Webseite um?

Sollte ich soeben Schwachsinn geschrieben haben, bitte den langen Arbeitstag zuschreiben und ingorieren ;)

n8
jmb
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-02-13 10:08.