Boa tarde.
Estou precisando de uma ajuda. Preciso consumir uma API. Essa API recebe JSON como parâmetros e retona JSON como resposta. Ela exige que tenha um header Content-Type:application/x-www-form-urlencoded.
Em uma aplicação Web, consigo consumir a API usando Jquery ou até mesmo Python, mas em C# não consigo de jeito nenhum. Sempre retorna erro 400 ou 404. Gostaria de fazer uma console app para acessar a api de tempos em tempos e atualizar um banco. Não quero usar Phyton entende! rs!
Com jquery consigo assim:
var params = {
"action": {
"name": "user_login",
"parameters": {
"login_name": login,
"password": senha
}
}
};
var token = '';
$.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
});
Ex:
Tenho que passar esse JSON para obter o token da API
{
"action": {
"name": "user_login",
"parameters": {
"login_name": "<<user login name>>",
"password": "<<user password>>"
}
}
}
que me retornaria outro JSON
{
"response": {
"properties": {
"action_name": "user_login",
"data": [{
"session_token": "E2AD2F5E8CXXXXXX64",
"profile_name": "default",
"user_language": "",
"application_url": "",
"map_type": "google"
}],
"action_value": "0",
"description": "",
"session_token": "E2AD2F5E8CXXXXXX64"
}
}
}