当前位置: 首页 > 知识库问答 >
问题:

接收到错误的状态代码在Http响应消息

谢善
2023-03-14

我的服务使用WebApi。它有一个带有GET方法的控制器。当我从客户端调用它并返回未授权的状态代码时,我在HttpResponseMessage中没有得到未授权,而是没有找到。

[RoutePrefix("api/dummies")]
public class DummiesController : ApiController
{    
  [Route("test")]
  [HttpGet]
  public IHttpActionResult GetTest()
  {
    return StatusCode(HttpStatusCode.Unauthorized);
  }
}

这是我从客户端调用它的方式:

public class Persistance
{
  private HttpClient _client;

  public Persistance()
  {
    _client = new HttpClient();
    _client.BaseAddress = new Uri("http://localhost:10767/");
  }

  public async Task DummyMethod()
  {
    HttpResponseMessage response = await _client.GetAsync("api/dummies/test");
    if (response.StatusCode == HttpStatusCode.Unauthorized)
    {
      // etc..
    }
  }
}

< code >响应的内容:

StatusCode  NotFound    System.Net.HttpStatusCode

我在 GetTest() 处放置了一个断点,它在那里停止,所以它到达了控制器方法。

为什么我在客户端中收到“未找到”,而不是“未经授权”?

共有1个答案

阎枫涟
2023-03-14

控制器路由属性[route(“api/[Controller]”)]是否存在?

删除行动路线,你可以试试这个

[HttpGet("test")]
 类似资料:
  • 我正在我的. Net Web应用程序上运行负载测试,使用Jeter。应用程序过程:启动-登录-开始测试-回答问题 直到500个用户或有时750个用户,测试才成功运行。但是当我增加负载时,我得到一个错误: 11.111.111.111是我的服务器IP地址。 我已经将jmeter.batch文件堆内存增加到HEAP=-Xms1g-Xmx4g-XX: MaxMetaspaceSize=256m Apac

  • 我正在使用 Jmeter 执行一个脚本进行负载测试。我在两者之间遇到错误,例如。如果我应用了500users的负载,直到250个用户线程成功运行,那么错误来自连接超时错误。然后,它再次运行成功为某些线程,然后出错。 代码如下:- 响应标头: 我需要破坏服务器。 有人能帮我吗?

  • 在我使用的JavaSpring应用程序中,从一个叫做的第三方,我们在JSON中获得错误响应,其中包含200个响应代码。 e. g. 如何将转换为400整数表示形式。Apacheinte似乎没有提供任何这样做的接口。

  • 我是不是漏掉了什么?我应该如何使用这些异步方法来处理这样的错误响应呢?

  • 问题内容: Iam尝试对https URL进行身份验证,但Iam出现异常。下面是代码。 例外情况: 请任何人建议如何解决此问题。 问题答案: 401错误代码表示“未经授权”。我相信您的代码无法正确编码Authentication标头。假设服务器需要 基本访问身份验证, 则代码应如下所示: RFC 2617 中提供了HTTP基本和摘要身份验证方案的全面描述

  • 我希望返回http状态代码和响应对象。如果我只是在失败场景中返回response object,则状态返回为200。但是我希望将服务返回的状态(例如:403)与响应对象一起发送。但是下面的代码只是返回消息和状态。在这种情况下,我想要响应对象orderdetails对象,它有失败原因和其他字段。如何将对象传递回客户端有什么帮助吗?