Как правильно передать сериализованный объект через http?C#

Место общения программистов C#
Ответить
Anonymous
 Как правильно передать сериализованный объект через http?

Сообщение Anonymous »

Я использую шаблон API C# и пытаюсь протестировать пост-контроллер. Пусть будет какой-нибудь предмет

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

   var m = new Dictionary
{
{ "key", "value" },
};
После сериализации мы получаем следующую строку:

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

string jc  = JsonConvert.SerializeObject(m);      //     "{ \"key\": \"value\" }"
и после второй сериализации получим:

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

string jc2 = JsonConvert.SerializeObject(jc);     //   "\"{\\\"key\\\":\\\"value\\\"}\""
И после отправки запроса на публикацию со следующим кодом:

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

var jsonContent = new StringContent(json2, Encoding.UTF8, "application/json");
HttpResponseMessage response1 = await client1.PostAsync("http:...", jsonContent);
// response1.StatusCode == "OK")
Я получаю «ОК» и могу правильно десериализовать содержимое запроса.
Если я удалю вторую сериализацию, я получу ответ1.StatusCode = «BadRequest».
1 .Как объяснить такое поведение?
2.Можно ли использовать для отправки запроса этот код

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

var jsonContent = new FormUrlEncodedContent(jc);
Как это сделать правильно?

Подробнее здесь: https://stackoverflow.com/questions/791 ... t-via-http
Ответить

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

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

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

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

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