Вопрос:

HttpClient PostAsync возвращает 500 при получении токена

c# api httprequest httpclient httpresponse

587 просмотра

1 ответ

1434 Репутация автора

Я пытаюсь выяснить, что я могу сделать (регистрация, вещи для проверки), прежде чем читать журналы сервера, так как я не хочу пропустить что-то глупое, прежде чем запросить это.

Вот мой код:

const string URL = "https://SomeURL/api/security/";
string urlParameters = string.Format("grant_type=password&username={0}&password={1}", username, password);
StringContent content = new StringContent(urlParameters, Encoding.UTF8, "application/x-www-form-urlencoded");

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
StringContent content = new StringContent(urlParameters, Encoding.UTF8, "application/x-www-form-urlencoded");

var tokenResponse = client.PostAsync("token", content).Result;

Я немного новичок в этом, поэтому я не уверен, что проверять дальше, но попробовал тот же запрос, используя почтальон, и получил ответ с моим токеном, так что похоже, что я что-то упустил или, возможно, что-то неправильно форматировал?

Автор: Pittfall Источник Размещён: 10.04.2017 02:23

Ответы (1)


0 плюса

1434 Репутация автора

Решение

Я не зашифровал свои параметры URL, вот исправление (возможно, лучший способ сделать это).

string urlParameters = string.Format("grant_type=password&username={0}&password={1}", Uri.EscapeDataString(username), Uri.EscapeDataString(password));
Автор: Pittfall Размещён: 10.04.2017 03:21
Вопросы из категории :
32x32