Thread Net::HTTP interner Puffer (14 answers)
Opened by rosti at 2011-03-19 23:01

rosti
 2011-03-19 23:01
#146668 #146668
User since
2011-03-19
3472 Artikel
BenutzerIn
[Homepage]
user image
Hallo liebe Gemeinde,

bischen Code:
Code: (dl )
1
2
3
4
5
6
7
my $i = 0;
while(my $n = $nh->read_entity_body(my $record, 794)){
my($ts, $url, $hugo, $ref) = unpack "NZ255Z35Z500", $record;
print "$n $ts $url\n";
last if ++$i == 3;
last unless $n;
}


Es müssen bei jedem Durchlauf exakt 794 Byte aus dem Socket gelesen werden, damit die Schablone in der unpack()-Funktion passt. Das Problem: read_entity_body liest ab dem zweiten Durchlauf nur 74 Byte, dann wieder 794. ($i ist nur zum Abkürzen)

In der Beschreibung zu Net:HTTP habe ich gelesen, dass intern gepuffert wird. Wie kann ich das abschalten? Ich verwende HTTP/1.0, ein Transfer-Encoding findet nicht statt, die Response kommt am Stück.

Die Response selbst ist ok, mit IO::Socket::INET werden die Records unzerknittert wieder hergestellt. Aus verschiedenen Gründen möchte ich jedoch Net::HTTP verwenden. Whats wrong?

Vielen Dank und Grüße,
Rolf
Last edited: 2011-03-20 00:34:11 +0100 (CET)

View full thread Net::HTTP interner Puffer