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: gabriel.vie...@gmail.com Date: Wed, 9 Jul 2014 17:28:03 -0300 To: rio-pm@pm.org 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 <guedes_1...@hotmail.com>: 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: guedes_1...@hotmail.com To: rio-pm@pm.org 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: bla...@gmail.com Date: Wed, 9 Jul 2014 14:32:11 -0300 To: rio-pm@pm.org 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 <guedes_1...@hotmail.com>: 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 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Gabriel Vieira _______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm