我正在使用asp.net Web API。我正在尝试从服务器获得积极的响应,但是程序没有看到控制器中的方法之一。它进入控制器构造函数,但不深入。 响应是
状态码404,原因短语:未找到。
我知道这可能是方法名称/参数/任何地方的错字,但对我来说一切似乎都很好。我本可以忽略一些东西。
API运行正常,我尝试使用其他方法。
这是控制器方法:
[HttpGet]
[Route("api/ClientFiles/GetScanStatus")]
[ActionName("GetScanStatus")]
private Tuple<bool, bool?, bool?> GetScanStatus(int scanTypeId, int clientId, int inventoryId)
{
//businessLogic here
return new Tuple<bool, bool?, bool?>(false, null, null);
}
调用控制器的方法:
public static async Task<Tuple<bool, bool?, bool?>> GetScanStatus(int scanTypeId, int clientId, int inventoryId)
{
using (HttpClient client = new HttpClient())
{
client.Timeout = new TimeSpan(0, 0, 90);
HttpResponseMessage response = await client.GetAsync($"{ConnectionURL}api/ClientFiles/GetScanStatus/?scanTypeId={scanTypeId}&clientId={clientId}&inventoryId={inventoryId}").ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsAsync<Tuple<bool, bool?, bool?>>();
return result;
}
}
return null;
}
response.RequestedUri
是
http://localhost:61372/api/ClientFiles/GetScanStatus/?scanTypeId=26&clientId=12&inventoryId=25482
答案 0 :(得分:3)
从您的代码看来,您的控制器方法是private
,因此不可见!
使方法public
[HttpGet]
[Route("api/ClientFiles/GetScanStatus")]
[ActionName("GetScanStatus")]
public Tuple<bool, bool?, bool?> GetScanStatus(int scanTypeId, int clientId, int inventoryId) {
//...
}
我认为它会起作用。