希望这是一个简单的问题,但我有一个简单的应用程序是自托管的(工作正常),我可以使用没有参数的POST命中所请求的方法(命中方法但默认参数为null),但是当我尝试以原始JSON格式传递POST请求的BODY中的命名参数时,它会收到400响应,并且由于某种原因从不命中该方法...
感谢任何建议。
[环境:Visual Studio 2015,C#,自托管REST应用程序]
[代码详情]
(Self Hosted app的Web服务托管代码)
WebServiceHost host = new WebServiceHost(typeof(CalculatorServiceREST), new Uri("http://localhost:8000"));
ServiceEndpoint ep = host.AddServiceEndpoint(typeof(ICalculator), new WebHttpBinding(), "");
ServiceDebugBehavior stp = host.Description.Behaviors.Find<ServiceDebugBehavior>();
stp.HttpHelpPageEnabled = false;
host.Open();
Console.WriteLine("Service is up and running");
Console.WriteLine("Press enter to quit ");
Console.ReadLine();
host.Close();
(合同实现类:CalculatorServiceRest.cs)
public class CalculatorServiceREST : ICalculator
{
[WebInvoke(Method = "POST")] // POST to: /RoundUp (with BODY item of 'number' in the request)
public int RoundUp(double number)
{
return Convert.ToInt32(Math.Round(number));
}
[HttpPost] // POST to: /GetName (with BODY item of 'number' in the request)
public string GetName(string name)
{
return name;
}
}
答案 0 :(得分:0)
似乎我必须将以下属性值添加到POST方法中,以便我可以在BODY中传递JSON数据以便将其拾取(这与我使用的方式不同,只能放置[ MVC的HttpPost]属性,它只知道如何选择它。任何人都能提供一些有关它为何与众不同的见解吗?
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]