Fórum WebService .net + android retornando nulo (quando banco de dados) #497735
14/10/2014
0
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
Curtir tópico
+ 0Posts
15/10/2014
Wander Santos
Gostei + 0
16/10/2014
Andre Alves
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
16/10/2014
Wander Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)