Método Post no HttpClient

1 resposta
F
Estou escrevendo uma aplicação utilizando httpClient e tenho um problema ao realizar um POST para uma página web a qual irá inserir os dados em um SGBD.

Abaixo segue o conteúdo da variável $_POST passada pelo formulário quando este é preenchido diretamente na página web. Os valores são fictícios lógicamente, mas se alguém tiver PETR3 a 10 reais eu compro :smiley:

[a] => adicionar
[ope] => C
[id_conta] => 3
[id_tipo_carteira] => 7
[cod] => PETR3
[ord] => 1
[val] => Array
    (
        [0] => 10,00
        [1] => 10,00
        [2] => 10,00
        [3] => 10,00
    )

[qtt] => Array
    (
        [0] => 100
        [1] => 1.000
        [2] => 1.000
        [3] => 10.000
    )

[dat] => Array
    (
        [0] => 06/04/09
        [1] => 06/04/09
        [2] => 06/04/09
        [3] => 06/04/09
    )

[hor] => Array
    (
        [0] => 13:10:14
        [1] => 13:10:14
        [2] => 13:10:14
        [3] => 13:10:14
    )

Abaixo segue o exemplo do método de login através do HttpClient.

public boolean login (String user, char[] password) throws InvalidPassworException, HttpException, IOException {

boolean ret = true;

PostMethod method = new PostMethod(CONTROLE_HOST);
//configura parâmetros para requisição post de login
	NameValuePair p1 = new NameValuePair("a", "login");
	NameValuePair p2 = new NameValuePair("p", "controle");
	NameValuePair p3 = new NameValuePair("uri", "/");
	NameValuePair p4 = new NameValuePair("usuario", user);
	NameValuePair p5 = new NameValuePair("senha", getPassword(password));
	NameValuePair p6 = new NameValuePair("botao", "Entrar");
	method.addParameters(new NameValuePair[]{p1, p2, p3, p4, p5, p6});

	try {
		this.client.executeMethod(method);
		
		//verifica se o client obteve o cokie para acesso futuro
		if(this.client.getState().getCookies().length == 0) {
			ret = false;
		}
	}
	finally {
		//libera conexão
		method.releaseConnection();			
	}
	return ret;
}

Mas como pode ser observado no conteúdo da variável $_POST lá em cima, esse post contêm valores que estão inseridos em array, como em val[0], val[1], etc… esse conteudo é dinâmico, podendo conter apenas um valor, ou “n” valores para cada uma daquelas variáveis… eu não consigo configurar esses valores de arrays no HttpClient, já que os métodos disponíveis até onde conheço a biblioteca(não muito) são:

method.addParameter(NameValuePair param)

method.addParameter(String paramName, String paramValue)

method.addParameters(NameValuePair[] parameters)

method.setParameter(String parameterName, String parameterValue)

e os contrutores de NameValuePair recebem apenas Strings.

Se alguém já enfrentou o problema ou tiver alguma sugestão, agradeço desde já :stuck_out_tongue:

1 Resposta

F

resolvido, se alguém tiver o mesmo problema manda uma msg privada

Criado 7 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 1
Participantes 1