我正在阅读一本书,以了解有关MVC的WebAPI控制器的更多信息,并且已经陷入了一个问题。我尝试使用Fiddler POST到我的WebAPI控制器(在Visual Studio 2010中),但无法连接到我的控制器。
我按照本书使用了以下课程:
public class Employee {
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Department { get; set; }
}
我的WebApi Controller POST方法,第一行var maxId = ...
行有一个断点:
public class EmployeesController : ApiController {
public HttpResponseMessage Post(Employee employee) {
var maxId = list.Max(e => e.Id);
employee.Id = maxId + 1;
list.Add(employee);
var response = Request.CreateResponse<Employee>(HttpStatusCode.Created, employee);
string uri = Url.Link("DefaultApi", new { id = employee.Id });
response.Headers.Location = new Uri(uri);
return response;
}
}
我可以通过Fiddler2发布GET而不会出现问题(重新运行我从Chrome跟踪的请求:
然后我尝试调整标题以运行POST,并在使用&#34; localhost&#34;时收到404。作为我的服务器:
根据许多建议,我尝试将服务器更改为&#34; localhost。&#34;,但收到了相同的404:
我最后一次尝试改变了&#34; localhost&#34;到我的计算机名称,并在尝试发布一秒钟之后收到502(这与前两个请求具有相同的内容,但只有上面命名的更改为url):
根据本书和在线的其他一些建议,在开始尝试任何这些POSTS之前,我还在<configuration>
节点的Web.config中添加了以下内容。它位于<configSections>
节点之后。
<system.net>
<defaultProxy>
<proxy usesystemdefault="False" bypassonlocal="True" proxyaddress="http://127.0.0.1:8888"/>
</defaultProxy>
</system.net>
我缺少什么想法?到目前为止,在我的所有研究中,this StackOverflow question最接近帮助我,但我已经尝试了那里唯一答案的建议,甚至视频也没有给我进一步的见解。
此时,如果部分内容与Visual Studio 2010有关,我不会感到惊讶,除非我错过了一些非常简单的内容。
答案 0 :(得分:-1)
您确定已定义默认路由吗? 它应该是这样的:
routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);