#c# #rest #wcf #post
#c# #остальное #wcf #Публикация
Вопрос:
У меня есть интерфейс ServiceContract
[ServiceContract] public interface IService { [OperationContract] [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, UriTemplate = "print")] [return: MessageParameter(Name = "Data")] int Print(PrintOrder orden); }
служба:
public class Service : IService { public int Print(PrintOrder orden) { try { Console.WriteLine("received order",orden.Body,orden.PrinterName); return 0; } catch (Exception ex) { Console.WriteLine(ex.Message,ex.StackTrace); return 1; } } }
И контракт на передачу данных
[DataContract] public class PrintOrder { [DataMember] public string PrinterName{ get; set; } [DataMember] public string Body { get; set; } }
проблема в том, что мой метод обслуживания Print
всегда получает значение null PrintOrder
в качестве параметра каждый раз, когда я отправляю запрос POST с телом JSON:
{ "PrinterName":"EPSON 1200", "Body":"test body" }
Ответ №1:
Изменено BodyStyle = WebMessageBodyStyle.WrappedRequest,
на BodyStyle = WebMessageBodyStyle.Bare,