Já tentei
Mas acho que devo esta preenchendo o JSON errado:
sub envio_facil{ my ($o, $d, $c, $a, $l) = @_; my $url = new
WWW::Mechanize;
$url->get('https://pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml');
$url->post(
'http://www.pagseguro.uol.com.br/para_seu_negocio/howItWorksCalculator.jhtml',
{ originCep => $c, destinyCep => $d,
Largura => $l, Altura => $a,
Comprimento => $c }); my $preco =
$url->decoded_content; return $preco;}
Deveria preencher seguindo isso??
//VALIDAÇÕES DOS CAMPOS DA SIMULAÇÃO { cepOrigem: {
name: "originCep", selector: $("#cepOrigem"),
required: true, requiredMessage: ["O campo CEP de
origem deve ser preenchido."] }, cepDestino: {
name: "destinyCep", selector: $("#cepDestino"),
required: true, requiredMessage: ["O campo CEP de
destino deve ser preenchido."] }, largura: {
name: "Largura", selector: $("#largura"),
required: true, requiredMessage : "A
largura deve ser preenchida.", validations: [
function (f) { return PagSeguro.Helper.isInteger(f.selector.val())},
function (f) { if (parseInt(f.selector.val()) < 11) {return
false;} else {return true}}, function (f) { if
(parseInt(f.selector.val()) > 105) {return false;} else {return true}}
], messages: ["Largura inválida","A largura
mínima é de 11cm.","A largura máxima é de 105cm."] },
altura: { name: "Altura", selector:
$("#altura"), required: true, requiredMessage :
"A altura deve ser preenchida.", validations: [
function (f) { return
PagSeguro.Helper.isInteger(f.selector.val())}, function (f)
{ if (parseInt(f.selector.val()) < 2) {return false;} else {return true}},
function (f) { if (parseInt(f.selector.val()) > 105) {return false;}
else {return true}} ], messages:
["Altura inválida","A altura mínima é de 2cm.","A altura máxima é de 105cm."]
}, comprimento: { name: "Comprimento",
selector: $("#comprimento"), required: true,
requiredMessage : "O comprimento deve ser preenchido.",
validations: [ function (f) { return
PagSeguro.Helper.isInteger(f.selector.val())}, function (f)
{ if (parseInt(f.selector.val()) < 16) {return false;} else {return true}},
function (f) { if (parseInt(f.selector.val()) > 105) {return
false;} else {return true}} ],
messages: ["Comprimento inválido","O comprimento mínimo é de 16cm.","O
comprimento máximo é de 105cm."] } }
From: [email protected]
Date: Wed, 9 Jul 2014 17:28:03 -0300
To: [email protected]
Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa
Faça um POST para /para_seu_negocio/howItWorksCalculator.jhtml
2014-07-09 16:45 GMT-03:00 Aureliano Guedes <[email protected]>:
Não sei, acho que estou meio inferrujado, mas tentei fazer pelo metodo post,
mas não deu certo.
a rotina ficou assim: sub envio_facil{ my ($o, $d, $c, $a, $l) = @_;
my $url = WWW::Mechanize->new(); #$url->use_plugin('Ajax');
$url->post(
'http://www.pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml',
{ originCep => $c,
destinyCep => $d,
Largura => $l, Altura
=> $a,
Comprimento => $c, }, );
my $preco = $url->decoded_content; return
$preco;
}
Ainda estou tentando outras formas, mas não faço ideia do que eu to tentando
fazer pra dar certo.
From: [email protected]
To: [email protected]
Date: Wed, 9 Jul 2014 17:47:15 +0000
Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa
Paciência... Quando acho que to no caminho certo, descubro que estou navegando
em aguas desconhecidas.
From: [email protected]
Date: Wed, 9 Jul 2014 14:32:11 -0300
To: [email protected]
Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa
Simples meu caro gafanhoto!
Você seguiu o be-a-bá tradicional de forma correta. Acessa a página do
formulário, preenche os dados e submit.
Só que esse form na realidade não faz o tradicional.
Se você inspecionar a página com o Inspect ou o firebug no Firefox, vai ver que
o form não declara um "method" o que implica "GET".
Entretanto, para acessar os dados, a página faz um "POST", provavelmente via
AJAX e não um submit tradicional.
Quando vc faz o submit, o Mechanize tenta enviar os dados pela URL usando o
método GET e o sevidor te responde com um 404 Not Found. É isso que o Mechanize
está te avisando.
Dá uma olhada nisso aqui:
https://github.com/blabos/Docs/wiki/Protocolo-HTTP
[]'s
2014-07-09 14:15 GMT-03:00 Aureliano Guedes <[email protected]>:
Ola monges,
Estou desenvolvendo um scriptzinho teste que se der tudo certo transformo em
modulo e faço o upload para o CPAN.
O script trabalha com calculo de frete, semelhante ao WWW::Correios::PrecoPrazo
do Garu.
A diferença é que ele calcula o frete com o desconto oferecido pelo PagSeguro
para Envio Fácil (e-sedex) quando o pagamento é efetuado via PagSeguro.
Estou usando o WWW::Mechanize, mas algo da errado. Quando preencho os fields e
submito retorna o seguinte erro:'Error GETing
https://pagseguro.uol.com.br/para_seu_negocio/howItWorksCalculator.
jhtml?originCep=74491626&destinyCep=36072130&width=30&height=6&length=40&weight=0.300:
Not Found at C:\Users\Aureliano\Desktop\CEP\CEP.pl line 29.'
Mas não sei exato qual o problema, mas parece que ta tentando puxar essa uri,
ou sei la o que ta acontecendo.
Alguem tem alguma ideia?
link do script completo: http://pastebin.com/Cg7XWBgB
Rotina onde acredito estar o problema:sub envio_facil{ my ($o, $d, $c, $a, $l)
= @_;
my $url = WWW::Mechanize->new();
$url->get('http://www.pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml');
$url->submit_form( form_id =>
'simulateCep',
fields => {originCep => $c,
destinyCep => $d,
width => $l,
height => $a,
length => $c,
,
},
);
my $preco = $url->decoded_content;
return $preco;}
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
--
Gabriel Vieira
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm