[Cascavel-pm] Duvida Sobre HTTP module - libwww

Guilherme Sperb Machado gsmachado em gmail.com
Segunda Outubro 9 12:49:32 PDT 2006


Olá a todos...

Seguinte, minha dúvida parece ser simples... só que não encontrei a
solução nem na página da CPAN, nem na documentação da libwww. :)

Bom, tenho um programa (que está abaixo) que faz algo bem simples...
um POST (ou poderia ser um GET qualquer) com um httpd. No HTTP Request
quero que somente os campos:

POST / HTTP/1.1

Connection: keep-alive

Host: 127.0.0.1

User-Agent: Qualquer-UserAgent/1.0

Content-Type: text/plain

Content-Length: 19666      ----> (o content-length certo)

Só que, quando executo o script que fiz, ele coloca o field TE e
Connection com outras opções que o módulo deve colocar por default. O
que quero é RETIRAR para que o módulo não coloque isso
"automaticamente". Um exemplo do HTTP Request gerado pelo script que
anexei no final deste email é:

POST / HTTP/1.1

TE: deflate,gzip;q=0.3

Connection: keep-alive, TE, close

Host: 127.0.0.1

User-Agent: Qualquer-UserAgent/1.0

Content-Type: text/plain

Content-Length: 19666          ----> (o content-length certo)


---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------

O script está abaixo:

#!/usr/bin/perl

use HTTP::Headers;
use HTTP::Request;
use Crypt::SSLeay;
use LWP::UserAgent;

$headers = HTTP::Headers->new;
$headers->user_agent('Qualquer-UserAgent/1.0');
$headers->header('Content-Type' => 'text/plain'); # sei que estou
mandando um gif e coloquei o content-type com text-plain... mas isso
só eh pra teste... depois acerto tudo direitinho...
$headers->header(':Connection' => 'keep-alive');

$method = "POST";
$uri = "http://localhost"

open(DAT, "big-gif.gif");
@content = <DAT>;

$request = HTTP::Request->new($method, $uri, $headers);

foreach $element (@content){
	$request->add_content( $element );
}

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

#print $request->as_string;
print "\n\n -------------------------------\n\n";
print $response->as_string;




Obrigado desde já,
Guilherme Sperb Machado


Mais detalhes sobre a lista de discussão Cascavel-pm