Ver mensagens sem resposta | Ver tópicos ativos Hoje é 22 Mai 2013, 19:45



Responder Tópico  [ 11 Mensagens ] 
 Web Service Via HTTP 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
 Web Service Via HTTP
Pessoal, boa noite.
Primeiramente gostaria de dizer que sou novato e estou tentando aprender Java e Android. Estou assistindo as vídeo aulas do Prof. Neri Neitzke e aprendendo a consumir web service via HTPP.

Fiz toda a parte de codificação igual ao dele na vídeo aula, mas não está funcionando. Colocarei o código e explicarei em qual parte não funciona.

package br.com.videoaulasneri;

import java.util.ArrayList;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import br.com.videoaulasneri.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Logar extends Activity {
   
    EditText textUsuario, textSenha;
    Button btAcessar;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_logar);
       
        textUsuario=(EditText) findViewById(R.id.editUsuario);
        textSenha=(EditText) findViewById(R.id.editSenha);
        btAcessar=(Button) findViewById(R.id.btAcessar);
       
        btAcessar.setOnClickListener(new View.OnClickListener() {
           
            public void onClick(View v) {
                Log.i("Logar", "Entrou no evento");
                String urlPost = "http://localhost/android/logar.php"; // IP Fixo ao invés do localhost
                //String urlGet = "http://localhost/android/logar.php?usuario="+textUsuario.getText().toString()+"&senha="+textSenha.getText().toString();
                ArrayList<NameValuePair> parametrosPost = new ArrayList<NameValuePair>();
                parametrosPost.add(new BasicNameValuePair("usuario", textUsuario.getText().toString()));
                parametrosPost.add(new BasicNameValuePair("senha", textSenha.getText().toString()));
                String respostaRetornada = null;
                Log.i("Logar", "Vai entrar no try");
                try {
                    respostaRetornada = ConexaoHttpClient.executaHttpPost(urlPost, parametrosPost);
                    //respostaRetornada = ConexaoHttpClient.executaHttpGet(urlGet);
                    String resposta = respostaRetornada.toString();
                    Log.i("Logar", "Resposta = "+resposta);
                    resposta = resposta.replaceAll("\\s+", "");
                    if (resposta.equals("1"))
                        mensagemExibir("Login", "Usuario Válido PARABÉNS ");
                    else
                        mensagemExibir("Login", "Usuario Inválido ????");
                }
                catch (Exception erro)
                {
                    Log.i("Erro", "Erro = "+erro);
                    Toast.makeText(Logar.this, "Erro: "+erro, Toast.LENGTH_LONG).show();
                }
               
            }
        });
    }
   
        public void mensagemExibir(String titulo, String texto)
           {
                AlertDialog.Builder mensagem = new AlertDialog.Builder(Logar.this);
                mensagem.setTitle(titulo);
                mensagem.setMessage(texto);
                mensagem.setNeutralButton("OK",null);
                mensagem.show();
           }

}
 


Acontece o seguinte...Ele está trazendo a resposta correta na linha abaixo, que é retornar 1...

Log.i("Logar", "Resposta = "+resposta);


Porém, quando eu utilizo o if para efetuar o comparativo, ele está dando sempre "false", retornando "Usuário Inválido".

if (resposta.equals("1"))
                        mensagemExibir("Login", "Usuario Válido PARABÉNS ");
                    else
                        mensagemExibir("Login", "Usuario Inválido ????");



Para auxiliá-los segue abaixo o código PHP:

<?php

//$usuario = $_GET['usuario'];
//$senha = $_GET['senha'];

$usuario = $_POST['usuario'];
$senha = $_POST['senha'];

$conexao = mysql_connect('localhost','root','');
mysql_select_db('android',$conexao);
$sql = "SELECT * FROM usuarios WHERE usuario = '$usuario' and senha = '$senha'";
$resultado = mysql_query($sql) or die ("Erro: ".mysql_error());
if (mysql_num_rows($resultado) > 0) {
echo "1";
} else {
echo 0;
}

?>

Gostaria muito da ajuda de vocês se possível. Caso seja necessário mais alguma informação eu posto.
Lembrando que não coloquei aqui o código da Classe "ConexaoHttpClient".

Peço desculpas se ficou algo confuso, espero que possam me ajudar.
Obs: no lugar do localhost eu utilizei o IP correto, apenas não postei aqui por questões de segurança...

Obrigado,
Marco Ostan


24 Set 2012, 00:26
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
Por favor, me ajudem...


24 Set 2012, 14:58
Perfil
Application Life Cycle
Application Life Cycle

Data de registro: 06 Dez 2011, 17:47
Mensagens: 209
Mensagem Re: Web Service Via HTTP
Olá marcoostan
seu codigo está correto o problema eq em localhost voce

deve colocar 10.0.2.2 é o Ip magico do android para fazer a conexao

testa ai qualquer coisa posta como ficou


24 Set 2012, 16:38
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
nero escreveu:
Olá marcoostan
seu codigo está correto o problema eq em localhost voce

deve colocar 10.0.2.2 é o Ip magico do android para fazer a conexao

testa ai qualquer coisa posta como ficou


Olá!

Obrigado pelo retorno, mas o problema não é este. Eu coloquei localhost para exemplificar, tinha utilizado um IP fixo e até o IP 10.0.2.2 e não funciona.

Na verdade, ele não retorna erro algum.

Acontece o seguinte, no Logcat ele exibe normal a "Resposta = 1".
Porém ao fazer if resposta = 1, ele SEMPRE retorna false e exibe alerta de usuário inválido, o que não faz sentido algum...

Poderia me ajudar?
Obrigado,
Marco Ostan


24 Set 2012, 16:49
Perfil
Application Life Cycle
Application Life Cycle

Data de registro: 06 Dez 2011, 17:47
Mensagens: 209
Mensagem Re: Web Service Via HTTP
Ola
executei seu codigo e deu certo porem

ao invez de usar AlertDialog coloquei Toast

testa ai posta como ficou qualquer coisa posto meu exemplo
para voce


24 Set 2012, 17:01
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
nero escreveu:
Ola
executei seu codigo e deu certo porem

ao invez de usar AlertDialog coloquei Toast

testa ai posta como ficou qualquer coisa posto meu exemplo
para voce



Mas, o Toast não vai exibir alerta não é?
Eu gostaria de exibir um alerta de usuário válido ou inválido.


24 Set 2012, 17:05
Perfil
Application Life Cycle
Application Life Cycle

Data de registro: 06 Dez 2011, 17:47
Mensagens: 209
Mensagem Re: Web Service Via HTTP
Tudo bem vou colocar o meu exemplo


Button cadastro;
    EditText c_login, c_senha;
    TextView c_nome;
    String login_pas, senha_pas;
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cadastro);

        c_login = (EditText) findViewById(R.id.cadas_login);
        c_senha = (EditText) findViewById(R.id.cadas_senha);

        c_nome = (TextView) findViewById(R.id.cadas_txt);
       
        cadastro = (Button) findViewById(R.id.cadas_enviar);
        cadastro.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                String login = c_login.getText().toString();
                String senha = c_senha.getText().toString();
                Busca(login, senha);
            }
        });
    }


    public void Limpar() {
        c_login.setText("");
        c_senha.setText("");
    }

    public void Busca(String login, String senha){
        ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();

        postParameters.add(new BasicNameValuePair("login", login
                .toString()));
        postParameters.add(new BasicNameValuePair("senha", senha
                .toString()));
        String response = null;
        try {
            response = CustomHttpClient.executeHttpPost(
                    "http://10.0.2.2/android/gravar.php?",
                    postParameters);
            String resposta = response.toString();
            resposta = resposta.replaceAll("\\s+", "");

            if (resposta.equals("1")) {
                mensagemExibir("Alerta", "Correto", CadastroUsuario.this, null);

                //sua ação

            } else {
                mensagemExibir("Alerta", "Errado", CadastroUsuario.this, null);
            }
            Limpar();
        } catch (Exception erro) {
            Msn.mensagemExibir("Aviso!", "Erro" + erro,
                    CadastroUsuario.this, null);
        }
    }
   
    public void mensagemExibir(String titulo, String texto, Context contexto,
            OnClickListener ok) {
        AlertDialog.Builder mensagem = new AlertDialog.Builder(contexto);
        mensagem.setTitle(titulo);
        mensagem.setMessage(texto);
        mensagem.setIcon(R.drawable.icom);
        mensagem.setNeutralButton("OK", ok);
        mensagem.show();
    }
}
 


minha pagina php faça o teste


<?php

$login = $_POST['login'];
$senha = $_POST['senha'];      

//$login = $_GET['login'];
//$senha = $_GET['senha'];

$conn = mysql_connect('localhost','root','') or die("erro");
mysql_select_db('android', $conn) or die ("erro aki");

$sql = mysql_query ("SELECT * FROM usuario WHERE login = '$login' AND senha = '$senha' ");
   
if(mysql_num_rows($sql)>0)
    echo "1";

else
    echo 0;

?>
 



bem aqui ela funcionou faça o teste o e poste o resultado /uu


24 Set 2012, 17:17
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
Peguei o código e salvei, testarei na faculdade. Pois, agora estou no trabalho.

Responderei se funcionou mais tarde.
De qualquer forma, obrigado por toda atenção e ajuda.

Abraço!


24 Set 2012, 17:41
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
Infelizmente não funcionou :(

Não sei mais o que fazer...


25 Set 2012, 00:17
Perfil
Android application
Android application

Data de registro: 29 Mar 2011, 10:37
Mensagens: 60
Mensagem Re: Web Service Via HTTP
Aoo prof. Neri fazendo sucesso!! rsrsrsrsrs..
Também fiz essa vídeo aula!

Vou tentar explicar o teu erro:
Quando você usa o 'UrlGet' no java, no seu arquivo PHP tem que estar descomentado o POST
Quando você usa o 'UrlPost' no java, no seu arquivo PHP tem que estar descomentado o GET

resumindo pra voce usar apenas:
 String urlPost = "http://localhost/android/logar.php";


No seu arquivo PHP tem que estar liberado o GET e nao o POST
é no arquivo PHP o teu erro! Tem que ficar assim:

<?php

$usuario = $_GET['usuario'];  
$senha = $_GET['senha'];

//$usuario = $_POST['usuario'];
//$senha = $_POST['senha'];  

$conexao = mysql_connect('localhost','root','');
mysql_select_db('android',$conexao);
$sql = "SELECT * FROM usuarios WHERE usuario = '$usuario' and senha = '$senha'";
$resultado = mysql_query($sql) or die ("Erro: ".mysql_error());
if (mysql_num_rows($resultado) >
0) {
echo "1";
} else {
echo 0;
}

?>


26 Set 2012, 11:47
Perfil
What is Android?
What is Android?

Data de registro: 23 Set 2012, 23:14
Mensagens: 8
Mensagem Re: Web Service Via HTTP
Obrigado pela dica, mas não deu certo.

Alguém mais pode me ajudar?
Posso enviar o projeto para alguém?


29 Set 2012, 01:34
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 11 Mensagens ] 

Quem está online

Usuários vendo este fórum: adelar, Aderbal Nunes, Alexandre Castro, alexandreizumi, alexandrepom, alexandreufcg, alexvbh, alsimoes, Anakin Skywalker, andrewort, axellsan, Berbert, BiG_SerGiO, Bravox, caio, canaville, Captain Typho, cassianotartari, comolatti, Corneta, Danilo Dias, danilosouza, dannieltec, Darkluna, David, deivisonrpg, difrene, Dookan, e-azuos, edson dias de gusmao, elisa, eloilton, erissi, euguns, eusobacana, fabric01, ferrodecaju, fgalvão, gabrielatme, garretereis, geco, Google Desktop, Guilherme, guilhermepilotti, guilhermesmo, gutodias, hostdesigner, ice, ixian, Jalerson, jasn, JRSIQUEIRA, JuniorE, kidush, konos, kusanaguy, laucode, lazarodm, Lelinho, lhdiassilva, Lincoln, lucasmadeira, Luke Skywalker, maolveira, marceloaragao, MauNunes, mendes_lu, mirelli, mmfsndroid, nakahara, nishimura.ichigo, nivaldo, nrsf, paint-horse, PAMinhoto, pamonteiro, paulanegreiros, Paulo Bizzo, paulosantos, paulovaz, pfsmorigo, phobos, raulcca, renan.fernandes, renata, renatocoliveira, rfrafael, rlecheta, rogerio.alcantara, rotilho, ruizsa, Samuka, sandro, Silvio Vaz, sobrinho, thiagoalgo, thiaguim, tiago, tiagofalcao, ton.soares, tonylock, Wesleyceraso, Wryel, xa:=zin, zeantonio e 6 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi