0
我正在嘗試設置一個簡單的測試,以向我的自託管Web-API服務器發出POST請求。自託管的Web API - Post Param null
var config = new HttpSelfHostConfiguration(new Uri(baseAddress));
// add a route
config.Routes.MapHttpRoute(name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
我添加了一個控制器:
public class PayloadController : ApiController
{
public string Get()
{
return "Hello from GET";
}
public HttpResponseMessage PostItem(Payload payload)
{
// payload
//...
}
}
而且我也有相應的模型(確保它包含屬性):
public class Payload
{
public string Date { get; set; }
public string Command { get; set; }
}
我使用的是Chrome上休息控制檯測試服務器,爲我的控制器中的GET獲取正確的結果。
Issueing以下請求作爲POST:
Request Url: http://localhost:8080/api/payload
Request Method: POST
Params: {
"Date": "2012.09.26",
"Command": "Hello"
}
編輯:內容類型設置爲應用/ JSON和編碼到UTF-8
設置在一個斷點控制器顯示POST參數未正確反序列化爲Paylod
對象,參數爲null
。
我可能錯過了什麼?
我實際上做了,再加上編碼設置爲UTF-8。 – rdoubleui
如果您使用REST控制檯的「請求參數」而不是「request payload raw body」,它將不會生成JSON。您需要將原始JSON粘貼到原始字段 –
,如下所示:http://screencast.com/t/iRWZqv91 –