WEB API 控制器未在浏览器中加载
WEB API Controller not loading in browser
在开始使用 C# 时遇到一些问题,这是我遇到的错误:
HTTP 错误 404.0 - 未找到
您要查找的资源已被删除、更名或暂时不可用。
刚接触这种语言,如有任何提示,不胜感激。
这是我的代码:
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace Http5112Assignment2.Controllers
{
public class DiceGameController : ApiController
{
[Route("api/J2/DiceGame/{die1}/{die2})")]
public class J2Controller : ApiController
{
[HttpGet]
public int DiceGame(int die1, int die2)
{
int dieSum = die1 + die2;
return dieSum;
}
}
}
}
请执行以下操作。
将每个 class 移动到一个名为 Api 控制器的单独文件中。在这里我们可以看到您嵌套了两个 Api 不应该做的控制器。
Api 控制器路由注释通常看起来像 [Route("[controller]")] 或 [Route( “api/[控制器]”)]。下面是一个例子。
[Route("api/[controller]")]
public class J2Controller : ApiController
{
[HttpGet("DiceGame/{die1}/{die2}")]
public int DiceGame([FromRoute] int die1, [FromRoute] int die2)
{
int dieSum = die1 + die2;
return dieSum;
}
}
如果您想调用 DiceGame 端点,请确保您的 Api 是 运行,您只需向 URL 发送 HTTP GET 请求即可:https://localhost:[你的端口]/api/j2/dicegame/69/420。
有关路由的更多信息,请访问以下 URL。
Create web APIs with ASP.NET Core
我发现您的路由字符串中可能有错字,请注意 /{die2})
中的 )
所以,假设您没有更改 RouteConfig
文件中默认路由的任何内容,那么请确保您 URL 如下(注意我的运行在 https: //localhost:44301 你的可能不同)
https://localhost:44301/api/J2/DiceGame/12/34)
注意:如果您提供您尝试使用的请求 URL 给了您错误,或者更好的是 cURL,这是该请求的标准格式给了你 404
在开始使用 C# 时遇到一些问题,这是我遇到的错误: HTTP 错误 404.0 - 未找到 您要查找的资源已被删除、更名或暂时不可用。
刚接触这种语言,如有任何提示,不胜感激。
这是我的代码:
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace Http5112Assignment2.Controllers
{
public class DiceGameController : ApiController
{
[Route("api/J2/DiceGame/{die1}/{die2})")]
public class J2Controller : ApiController
{
[HttpGet]
public int DiceGame(int die1, int die2)
{
int dieSum = die1 + die2;
return dieSum;
}
}
}
}
请执行以下操作。
将每个 class 移动到一个名为 Api 控制器的单独文件中。在这里我们可以看到您嵌套了两个 Api 不应该做的控制器。
Api 控制器路由注释通常看起来像 [Route("[controller]")] 或 [Route( “api/[控制器]”)]。下面是一个例子。
[Route("api/[controller]")] public class J2Controller : ApiController { [HttpGet("DiceGame/{die1}/{die2}")] public int DiceGame([FromRoute] int die1, [FromRoute] int die2) { int dieSum = die1 + die2; return dieSum; } }
如果您想调用 DiceGame 端点,请确保您的 Api 是 运行,您只需向 URL 发送 HTTP GET 请求即可:https://localhost:[你的端口]/api/j2/dicegame/69/420。 有关路由的更多信息,请访问以下 URL。 Create web APIs with ASP.NET Core
我发现您的路由字符串中可能有错字,请注意 /{die2})
)
所以,假设您没有更改 RouteConfig
文件中默认路由的任何内容,那么请确保您 URL 如下(注意我的运行在 https: //localhost:44301 你的可能不同)
https://localhost:44301/api/J2/DiceGame/12/34)
注意:如果您提供您尝试使用的请求 URL 给了您错误,或者更好的是 cURL,这是该请求的标准格式给了你 404