Я создаю веб-сервис с использованием подхода RESTful и использую WCF WebHttp API (.NET v4).
Чтобы удовлетворить некоторые устаревшие функциональные возможности, мне нужно принять необработанное XML-сообщение через POST и обработать его. Например, один из моих методов выглядит следующим образом:
[WebInvoke(UriTemplate = "Hello", Method = "POST")]
public Message ProcessMessage(string xmlMessage)
{
if (String.IsNullOrWhiteSpace(xmlMessage))
{
return WebOperationContext.Current.CreateXmlResponse(ProcessingFailedReply);
}
var message = XElement.Parse(xmlMessage);
return WebOperationContext.Current.CreateXmlResponse(ProcessingSuccessfullReply);
}
Тем не менее, каждый раз, когда я пытаюсь отправить какой-нибудь xml-файл в "/ Hello", я получаю сообщение о том, что формат недопустим и ему нужна специально закодированная строка. Я предполагаю, что API использует стандартную схему для автоматической сериализации xmlMessage. Когда я посещаю справку ("/ help"), мне предоставляется пример формата для моего xmlMessage:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">String content</string>
Как разрешить и обработать POST-запрос как необработанный в этом сценарии?
Я просмотрел API и единственный соответствующий класс ( WebOperationContext.Current.IncommingRequest ) не имеет методов для получения необработанного сообщения ...
Спасибо
Z ...