gpt4 book ai didi

c# - Angular - 向 Owin+Web API Controller 发出带有参数的 HTTP GET 请求未找到

转载 作者:可可西里 更新时间:2023-11-01 16:51:47 24 4
gpt4 key购买 nike

我正在尝试向我的 Web API Controller 发出带有 URI 中 ID 的 HTTP GET 请求,但我似乎无法将其用于正确的功能,也无法成功获取 ID:

Angular Controller

  $http({
method: 'GET',
url: 'api/Files/Id/' + blobId,
responsetype: 'arraybuffer'
}).then(function successcallback(response) {

console.log(response);
//logic

}, function errorcallback(response) {

});

Startup.cs

 config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute("DefaultAPI",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });

网络 API Controller

 [RoutePrefix("api/Files")]
public class FileController : ApiController
{
// /api/Files/
[Authorize]
[Route("")]
public IHttpActionResult GetAll()
{

}

// /api/Files/Id/
[Authorize]
[Route("Id")]
public async Task<HttpResponseMessage> Get([FromUri] string id)
{
}
}

请求返回 Not Found。 URL 应该是:

url: '../api/Controller/File/' + blobId

url:'../api/Controller/File/'

我应该以不同的方式传递 ID 吗?

最佳答案

你写的

...
[RoutePrefix("api/Files")]
public class FileController : ApiController
...

但是在你的 Angular 代码中你使用的是 /api/Controller/File/

还需要写:

...
[Route("{Id}")]
public async Task<HttpResponseMessage> Get([FromUri] string id)
...

而且你不需要输入 controller 你的 Controller 是 FileController 并且你为它定义了路由 "api/Files" .

因此,您可能必须编写 .../api/api/Files/ 但我不确定。你必须测试它

关于c# - Angular - 向 Owin+Web API Controller 发出带有参数的 HTTP GET 请求未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36534480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com