Опубликовать пустое тело в REST API через HttpClient - PullRequest
84 голосов
/ 26 октября 2011

API, который я пытаюсь вызвать, требует, чтобы я выполнял POST, но с пустым телом. Я новичок в использовании WCF Web API HttpClient, и я не могу найти код записи, который бы создавал сообщение с пустым телом. Я нахожу ссылки на некоторый метод HttpContent.CreateEmpty (), но я не думаю, что это для кода HttpClient Web API, так как я не могу найти этот метод.

Ответы [ 4 ]

81 голосов
/ 12 мая 2017

Делал это раньше, просто будь проще:

Task<HttpResponseMessage> task = client.PostAsync(url, null);
78 голосов
/ 27 октября 2011

Используйте StringContent или ObjectContent, которые происходят от HttpContent, или вы можете использовать null как HttpContent (см. этот комментарий ).

3 голосов
/ 08 сентября 2017

Обнаружили, что:

Task<HttpResponseMessage> task = client.PostAsync(url, null);

Добавляет ноль в тело запроса, что не удалось в WSO2.Заменено на:

Task<HttpResponseMessage> task = client.PostAsync(url, new {});

И сработало.

0 голосов
/ 26 октября 2011

Я думаю, что это происходит автоматически, если у вашего веб-метода нет параметров или они все вписываются в шаблон URL.

Например, это объявление отправляет пустое тело:

  [OperationContract]
  [WebGet(UriTemplate = "mykewlservice/{emailAddress}",
     RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
     BodyStyle = WebMessageBodyStyle.Wrapped)]
  void GetStatus(string emailAddress, out long statusMask);
...