[Rio-pm] [DUVIDA] Obter resultado de pesquisa

Aureliano Guedes guedes_1000 em hotmail.com
Quarta Julho 9 13:41:52 PDT 2014


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.vieira em gmail.com
Date: Wed, 9 Jul 2014 17:28:03 -0300
To: rio-pm em 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_1000 em 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_1000 em hotmail.com


To: rio-pm em 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: blabos em gmail.com
Date: Wed, 9 Jul 2014 14:32:11 -0300


To: rio-pm em 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_1000 em 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 em pm.org

http://mail.pm.org/mailman/listinfo/rio-pm



_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  

_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  

_______________________________________________

Rio-pm mailing list

Rio-pm em pm.org

http://mail.pm.org/mailman/listinfo/rio-pm


-- 
Gabriel Vieira


_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm 		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20140709/6343deab/attachment-0001.html>


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