2
I want to make a request to a Web Service developed in Asp . Net passing two parameters to my server. The controller in the web Service this asism:
public HttpResponseMessage Get(string id1, string id2)
{
try
{
var destinoDao = new DestinoDAO();
var destinos = destinoDao.ListaCidadesDestino(id1, id2);
return Request.CreateResponse(HttpStatusCode.OK, destinos);
}
catch
{
var mensagem = "Não foram encontrados destinos com os valores digitados.";
return Request.CreateResponse(HttpStatusCode.OK, mensagem);
}
}
The method in Xamarin is as follows:
public async Task GetLista()
{
aguarde = true;
HttpClient cliente = new HttpClient();
var resultado = await cliente.GetStringAsync(urlBuscaDestino + origem + destino);
var buscaJson = JsonConvert.DeserializeObject<BuscaJson[]>(resultado);
foreach (var destino in buscaJson)
{
this.ListaDestinos.Add(new Destinos
{
linha = destino.linha,
nome = destino.nomeEmpresa,
origem = destino.origem,
destino = destino.destino,
municipio = destino.municipio
});
}
aguarde = false;
}
Remarks: the variables "origin and destination" are being filled in correctly, the URL is also correct, when I run the application and get to that part it gives me an Exception HttpRequestException
. From now on I thank anyone who can help.
EDIT
Controller:
namespace WebServiceAraguaina.Controllers
{
public class BuscaDestinoController : ApiController
{
public HttpResponseMessage Get(string id1, string id2)
{
try
{
var destinoDao = new DestinoDAO();
var destinos = destinoDao.ListaCidadesDestino(id1, id2);
return Request.CreateResponse(HttpStatusCode.OK, destinos);
}
catch
{
var mensagem = "Não foram encontrados destinos com os valores digitados.";
return Request.CreateResponse(HttpStatusCode.OK, mensagem);
}
}
}
}
DAO:
public IList<BuscaDestino> ListaCidadesDestino(string origem, string destino)
{
var selectCMD = dao.conexao.CreateCommand();
selectCMD.CommandText = "SELECT DISTINCT (lin.Cd_Cod_Linha) as Linha, emp.Ds_NomeFantasia AS Empresa, " +
"lin.Ds_Cidade_Origem as Origem, lin.Ds_Cidade_Destino as Destino, " +
"mun.Ds_Municipio as Municipios from Cd_Linha lin left join " +
"Cd_Empresa emp on lin.Cd_Empresa = emp.Cd_Empresa left join " +
"Cd_Paradas par on emp.Cd_Empresa = par.Cd_Empresa left join " +
"Cd_Municipios mun on par.Cd_Cod_Municipio = mun.Cd_Cod_Municipio " +
"where LTRIM(RTRIM(Ds_Cidade_Origem)) = @Ds_Cidade_Origem and " +
"LTRIM(RTRIM(Ds_Cidade_Destino)) = @Ds_Cidade_Destino";
var paramOrigem = new SqlParameter("Ds_Cidade_Origem", Convert.ToString(origem));
selectCMD.Parameters.Add(paramOrigem);
var paramDestino = new SqlParameter("Ds_Cidade_Destino",Convert.ToString(destino));
selectCMD.Parameters.Add(paramDestino);
var ListaDestinos = new List<BuscaDestino>();
var resultado = selectCMD.ExecuteReader();
while (resultado.Read())
{
var cidadeDestino = new BuscaDestino();
cidadeDestino.Cod_Linha = Convert.ToString(resultado["Cod_Cod_Linha"]);
cidadeDestino.Ds_NomeFantasia = Convert.ToString(resultado["Ds_NomeFantasia"]);
cidadeDestino.Ds_Cidade_Origem = Convert.ToString(resultado["Ds_Cidade_Origem"]);
cidadeDestino.Ds_Cidade_Destino = Convert.ToString(resultado["Ds_Cidade_Destino"]);
cidadeDestino.Municipio = Convert.ToString(resultado["Ds_Municipio"]);
ListaDestinos.Add(cidadeDestino);
}
resultado.Close();
return ListaDestinos;
}
You could put the URL you are trying to access and the route to your method?
– perozzo