2
respostas

Headers Content-Type:application/x-www-form-urlencoded

Boa tarde.

Fiz alguns testes em uma api usando jquery e consegui obter os dados, porém usando web api não consigo. Como eu poderia fazer a mesma requisição usando web api?

Jquery:

$.ajax({
        contentType: 'application/x-www-form-urlencoded',
        crossDomain: true,
        type: "POST",
        url: 'https://api-il.traffilog.com/appengine_3/5E1DCD81-5138-4A35-B271-E33D71FFFFD9/1/json',
        data: JSON.stringify(params),
        success: function (data) {
            token = data.response.properties.session_token;
        },
        error: function (data) {
            alert('Não foi possível obter o token de acesso a API. Favor entrar em contato com o T.I.');
        },
        dataType: 'json',
        async: false
    });
2 respostas

Opa, e qual problema acontece quando você usa a web api?

Retorna erro 404.

public class TraffilogRestClient
    {
        private HttpClient _httpClient;
        private string Uri = @"https://api-il.traffilog.com/appengine_3/5E1DCD81-5138-4A35-B271-E33D71FFFFD9/1/json";

        public TraffilogRestClient()
        {
            _httpClient = new HttpClient();
            _httpClient.BaseAddress = new Uri(this.Uri);
            _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        }

        public string ObterToken()
        {
            var action = new UserLoginViewModel();
            var content = new StringContent(JsonConvert.SerializeObject(action), Encoding.UTF8, "application/json");
            HttpResponseMessage response =  _httpClient.PostAsync(this.Uri, content).Result;


            if (response.IsSuccessStatusCode)
            {
                return "ok";
            }
            else
            {
                return "erro";
            }
        }
    }