Thread Bitte Feedback und Diskussion Net::HTTP10 (11 answers)
Opened by rosti at 2011-03-21 18:51

topeg
 2011-03-22 16:38
#146788 #146788
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Das Problem ist, dass 794 Byte für den Server kein vollständiges TCP Paket ist und ein volles Paket kein ganzzahliges vielfache von 794 ist. LWP zerlegt dann den Paketinhalt und in 794Byte Blöcke plus den Rest. Das Problem ist also eher, dass der Server zu große TCP Pakete erzeugt und LWP nicht Puffert. Du wirst selber Puffern müssen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new();

my $service = 'http://www.heise.de';

my $request = HTTP::Request->new('GET', $service);

my $buffer='';
my $res=$ua->request($request, sub {
        my ($data, $response, $protocol) = @_;
        $buffer.=$data;
        while(length($buffer) >= 794)
        {
          $data=substr($buffer,0,794,'');
          printf("%03u\n",length($data));
        }
    });

if ($res->is_success)
{ print "OK\n"; }
else
{ print "ERROR\n"; }

View full thread Bitte Feedback und Diskussion Net::HTTP10