我是一个 Web API 新手,在 .Net 4 中编写一个 RESTFul Web Api 服务。我已经为我正在调用的类配置了一个控制器Authentication
。我遇到的问题是,当我将 JSON 数据发布或放入 web api 服务时,我在控制器中的处理程序被调用,但参数对象中有 NULL 数据。我可以成功获取数据,但是 Post 和 Put 提供了空参数对象。
我已经从客户端应用程序和 Fiddler 进行了测试,得到了相同的结果。这是我从 Fiddler 发送的内容:
Action: PUT
URI: http://127.0.0.1:81/Authentication/xyz/
HTTP Version: HTTP/1.1
Request Headers:
User-Agent: Fiddler
Host: 127.0.0.1:81
Content-Type: application/json; charset=utf-8
Content-Length: 75
Request Body:
{"hashvalue":"kbVFNeBbNHmYQXXlS6d7Ag==","password":"test","username":"dan"}
当我在 Authentication 控制器的 Put 处理程序中设置断点时:
public void Put(string IDstring, Authentication value)
{
}
我在监视窗口中得到以下信息:
IDstring null string
value {bbsRESTResources.Authentication} bbsRESTResources.Authentication
hashvalue null string
password null string
username null string
我的身份验证类如下所示:
namespace bbsRESTResources
{
public class Authentication
{
public string username;
public string password;
public string hashvalue;
}
}
我的路线如下所示:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
请不要担心这是否是处理身份验证的好方法。这只是端到端测试我的应用程序的第一步。我已经寻找其他人遇到此问题的示例,但没有找到。