API, который я пытаюсь вызвать, требует, чтобы я выполнял POST, но с пустым телом. Я новичок в использовании API-интерфейса WCF Web API HttpClient, и я не могу найти код записи, который будет делать сообщение с пустым телом. Я нахожу ссылки на некоторый метод HttpContent.CreateEmpty(), но я не думаю, что это для кода API HttpClient Web API, так как я не могу найти этот метод.
Поместить пустой объект в REST API через HttpClient
Ответ 1
Используйте StringContent
или ObjectContent
, которые выходят из HttpContent
, или вы можете использовать null
как HttpContent
(см. этот комментарий).
Ответ 2
Сделал это раньше, просто прост:
Task<HttpResponseMessage> task = client.PostAsync(url, null);
Ответ 3
Нашли что:
Task<HttpResponseMessage> task = client.PostAsync(url, null);
Добавляет ноль в тело запроса, что не удалось на WSO2. Заменено на:
Task<HttpResponseMessage> task = client.PostAsync(url, new {});
И работал.
Ответ 4
Я думаю, что это автоматически, если ваш веб-метод не имеет параметров или все они вписываются в шаблон URL.
Например, это объявление отправляет пустое тело:
[OperationContract]
[WebGet(UriTemplate = "mykewlservice/{emailAddress}",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
void GetStatus(string emailAddress, out long statusMask);