Как обработать ошибку ввода JSON с помощью HttpClient PostAsync, который не содержит токенов JSONC#

Место общения программистов C#
Ответить
Anonymous
 Как обработать ошибку ввода JSON с помощью HttpClient PostAsync, который не содержит токенов JSON

Сообщение Anonymous »

К сожалению, у меня возникла странная ошибка с процедурой HttpClient PostAsync :-(
Я знаю, что мне нужно задать вопрос здесь по SO настолько ясно и полезно, насколько это возможно, поэтому из-за это я сделаю все возможное, чтобы написать этот вопрос, помня об этом...
Моим обязательным условием является наличие следующих двух процедур:

Код: Выделить всё

public async Task GetToken(string username, string password)
{
var transurl = $"{burl}users/auth/";
using (var c = new HttpClient())
{
var cs = $"{{  \"username\": \"{username}\", \"password\": \"{password}\"}}";
var token = await PostDataAsync(c, transurl, cs);
return token;
}
}
< /code>
public async Task PostDataAsync(HttpClient c, string url, string content)
{
var sc = new StringContent(content, Encoding.UTF8, "application/json");
var res = await c.PostAsync(url, sc); //this line seems to produce the error
if (res.IsSuccessStatusCode)
{
return await res.Content.ReadFromJsonAsync();
}
else
{
var errs = await res.Content.ReadAsStringAsync();
var nordExc = JsonSerializer.Deserialize(errs);
var nexc2 = new Exception(errs);
throw nexc2;
}
}
< /code>
The error which I have got is The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
Насколько я понимаю, это строка кода await c.PostAsync(url, sc);, которая сообщает об этой ошибке. Значение переменной content процедуры PostDataAsync в моем случае показывает строку «{ «username»: «myUsername», «password»: «myPassword»}», которая является допустимым форматом JSON. Я проверил оценку этого значения в Visual Studio и выбрал визуализатор JSON, и содержимое переменной в порядке. И из-за ошибки значение IsSuccessStatusCode является ложным.
Поэтому возникает вопрос: как справиться с этой ошибкой?
С уважением, Майкл

Подробнее здесь: https://stackoverflow.com/questions/793 ... not-contai
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»