Я знаю, что уже есть очень похожий вопрос здесь , но, к сожалению, топовый ответ мне не помог.
Я хочу POST
некоторые данные в RESTful сетисервис через Unity Webrequest .Как указано в документации ,
Данные в postData
будут экранированы, а затем интерпретированы в поток байтов через System.Text.Encoding.UTF8.
Данные в postData
хранятся в формате JSON.Удаленный веб-сервис будет десериализовать все входящие данные, используя NewtonSoft.Json
.
К сожалению, удаленный веб-сервис выдает JsonReaderException
с сообщением "Unexpected character encountered while parsing value: %. Path '', line 0, position 0."
Это потому, что опубликованные данные выглядят примерно такстрока (усеченная):
% 7b% 22LogType% 22% 3a% 22Drill% 22% 2c% 22Action% 22% 3a% 22Started% 22% 2c% 22Описание% 22% 3a% 22 ...
Я пытался перевести входящие данные из UTF-8 в ASCII перед вызовом библиотеки Newtonsoft.Json
для десериализации:
byte[] contentBytes = await Request.Content.ReadAsByteArrayAsync();
string postContents = Encoding.ASCII.GetString(Encoding.Convert(Encoding.UTF8, Encoding.ASCII, contentBytes));
Однако JsonReaderException
по-прежнемуброшен, потому что postContents
все еще выглядит примерно так:
% 7b% 22LogType% 22% 3a% 22Drill% 22% 2c% 22Action% 22% 3a% 22Started% 22% 2c% 22Description%22% 3a% 22 ...
Что мне нужно сделать, чтобы удаленная веб-служба могла успешно десериализовать полученные данные?