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