我正在尝试使用HttpClient
来自 ASP.NET Web Api 的示例,但我在响应中收到状态代码 500,我不知道为什么。
我在测试中有以下代码:
var baseAddress = new Uri("http://localhost:54997");
var config = new HttpSelfHostConfiguration(baseAddress);
var server = new HttpSelfHostServer(config);
((HttpConfiguration)config).Routes.MapHttpRoute(
name: "default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new
{
id = RouteParameter.Optional
});
using (var client = new HttpClient(server))
{
client.BaseAddress = baseAddress;
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync("/api/user/getUserDetails").Result;
}
我的控制器方法是这样的:
[HttpGet]
[ActionName("getUserDetails")]
public string GetUserDetails()
{
return "hello";
}
控制器动作在 Fiddler 中响应良好。
该错误似乎是在响应的 Content 属性中引发的。
[System.Net.Http.ObjectContent<System.Web.Http.HttpError>] = {System.Net.Http.ObjectContent<System.Web.Http.HttpError>}
很抱歉,这没什么好说的。
编辑请看下面达林的回答。我还将代码放在控制台应用程序中,它工作正常 - 那么为什么不在测试项目中呢?
有人可以指出我可能出错的正确方向吗?