WebService .net + android retornando nulo (quando banco de dados)

Android

14/10/2014

Boa noite pessoal,

Alguém pode me ajudar?Estou com um WebService .Net com 2 métodos, um deles não conecta com banco de dados e o outro sim. O que não conecta funciona normalmente e o android reconhece o retorno e mostra na tela... Já o que conecta no banco não retorna nada :(

package com.example.testews;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpResponseException;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void EnviarOnClick(View v) {

        final Thread nt = new Thread() {
            String res;
            EditText nome = (EditText) findViewById(R.id.nome);
            EditText senha = (EditText) findViewById(R.id.senha);

            @Override
            public void run() {

                String NAMESPACE = "http://tempuri.org/";
                String URL = "http://10.0.0.108:80/Login/DemoWS.asmx";
                String METHOD_NAME = "LoginWS";
                String SOAP_ACTION = "http://tempuri.org/LoginWS";

                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                request.addProperty("nome",
                        nome.getText().toString());
                request.addProperty("senha",
                        senha.getText().toString());

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                        SoapEnvelope.VER11);
                envelope.dotNet = true;

                envelope.setOutputSoapObject(request);
                HttpTransportSE transporte = new HttpTransportSE(URL);

                try {
                    transporte.call(SOAP_ACTION, envelope);
                    SoapPrimitive resultado_xml = (SoapPrimitive) envelope
                            .getResponse();
                    res = resultado_xml.toString();
                } catch (HttpResponseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        Toast.makeText(Main.this, res,
                                Toast.LENGTH_LONG).show();
                        TextView result = (TextView) findViewById(R.id.tv_resultado);
                        result.setText(res);
                    }

                });
            }
        };
        
        nt.start();
    }
}



E o WS onde o WS não está retornando e o WS2 está pois não conecta no DB

[WebMethod]
    public string LoginWS2(string nome, string senha)
    {
        if (nome != "" && senha != "")
        {
            if (nome == "admin" && senha == "admin")
            {
                resposta = "Conectado com sucesso";
            }
            else
            {
                resposta = "Não foi possível conectar";
            }

        }
        else
        {
            resposta = "Dados de login e senha são obrigatórios";
        }

        return resposta;
    }
[WebMethod]
    public string LoginWS(string nome, string senha)
    {
        SqlConnection con;
        con = new SqlConnection("data source=ANDRE;initial catalog=AppFaculdade;integrated security=True;MultipleActiveResultSets=True");
        String resposta = "SEM CONEXÃO";
        SqlCommand cmd;
        try
        {
            con.Open();
            cmd = new SqlCommand("SP_SL_Valida_Login", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@nome", nome));
            cmd.Parameters.Add(new SqlParameter("@senha", senha));
            SqlDataReader dr = cmd.ExecuteReader();

            if (dr.Read())
            {
                resposta = dr.GetInt32(0).ToString();
                if (resposta == "")
                {
                        resposta = "Usuário não existe na base de dados";
                }
                else
                {
                    if (resposta == "1")
                    {
                        resposta = "Usuário logado com sucesso";
                    }
                    else
                    {
                        resposta = "Login ou senha inválido";
                    }
                }
            }
            /*else
            {
                resposta = "não encontrado";
            }*/

        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            con.Close();
        }
        return resposta;
    }



Alguém sabe o que pode ser....? Pois quando testo no navegador os 2 WS funcionam normalmente
Andre Alves

Andre Alves

Curtidas 0

Respostas

Wander Santos

Wander Santos

14/10/2014

Verifique se nas linhas 45 e 48 as variaveis estao com valores
GOSTEI 0
Andre Alves

Andre Alves

14/10/2014

Verifique se nas linhas 45 e 48 as variaveis estao com valores


Sim estão sim, o meu catch não estava para exibir o erro na tela.... coloquei um

return  ex.Message.ToString();


A partir dai consegui ver o erro que era de autenticação no iis
fiz umas configs era problema de autenticação de usuário...entrei no iis e coloquei para network service

Obrigado
GOSTEI 0
Wander Santos

Wander Santos

14/10/2014

Blz. Bom q resolveu seu problema
GOSTEI 0
POSTAR