我认为答案很简单,但我有一个方法抛出405不允许的错误,我不知道为什么。在我进入细节之前,我会指出一些似乎是线索的东西 - 实际工作的方法实际上称为Get - 而且我不确定是否在幕后完成了一些导致其工作的HTTP方法映射。 / p>
我有一个控制器,里面有多种方法。到目前为止,我正在测试其中的两个,第一个工作正常,但第二个是抛出错误。
我的控制器是OOB设置,我的逻辑和模型是在单独的项目中。调用以下方法并正确返回:
[Route("api/GetFastPlan/{key}/{clientID}/{fastPlanID}")]
public RequestFastPlanResult Get(string key, string clientID, int fastPlanID)
{
return new FastPlanFileShare().RequestFastPlan(key, clientID, fastPlanID);
}
然而,这种方法正在抛出405.
[Route("api/UpdateDownloads/{key}/{clientID}/{fastPlanID}")]
public UpdateDownloadsResult UpdateDownloads(string key
, string clientID, int fastPlanID)
{
return new FastPlanFileShare().UpdateNumberOfDownloadsColumnFastPlan(key
, clientID, fastPlanID);
}
我使用相同的代码设置调用它们,这是在我的测试项目中:
using (var httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri("http://localhost:8129/api/UpdateDownloads/value1/value2/1082");
HttpResponseMessage response = httpClient.GetAsync("http://localhost:8129/api/UpdateDownloads/value1/value2/1082").Result;
Assert.IsTrue(response.IsSuccessStatusCode);
if (response.IsSuccessStatusCode)
{
var rp = response.Content.ReadAsAsync<ServiceReference2.RequestFastPlanResult>();
Assert.IsTrue(rp.Result.ServiceResult.WasSuccessful);
}
}
完整错误:
{StatusCode:405,ReasonPhrase:'Method Not Allowed',版本:1.1, 内容:System.Net.Http.StreamContent,Headers:{Pragma:no-cache X-SourceFiles: =?UTF-8 2 B 4 RDpcUHJvamVjdHNcTkVUMjAxK1xFeWVNRCBFTVIgSW50ZXJuYWwgV2Vic2VydmljZXNcRU1SU2VydmljZXMuV2ViQVBJXGFwaVxVcGRhdGVEb3dubG9hZHNcZXllbWRlbXIjMVxFWUU5ODQ1NFwxMDgy?= 缓存控制:无缓存日期:2016年1月6日星期三格林尼治标准时间13:50:43 服务器:Microsoft-IIS / 10.0 X-AspNet-版本:4.0.30319
X-Powered-By:ASP.NET Content-Length:72允许:POST
Content-Type:application / json; charset = utf-8到期:-1}}