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

Reply via email to