无法让 ASP.NET 4 Web API 返回成功 POST 的状态代码“201 - 创建”

2023-11-23

我正在尝试返回 HTTP 状态代码201 Created使用 ASP.NET 4 Web API 进行 RESTful POST 操作,但我总是得到200 OK.

我目前正在 IIS 7.5.7600.16385、VS 2010 Professional、Windows 7 64 位 Professional 上进行调试。

public MyResource Post(MyResource myResource)
{
    MyResource createdResource;
    ...
    HttpResponse response = HttpContext.Current.Response;
    response.ClearHeaders(); // added this later, no luck
    response.ClearContent(); // added this later, no luck
    response.StatusCode = (int)HttpStatusCode.Created;
    SetCrossOriginHeaders(response);
    return createdResource;
}

我见过其他例子HttpContext.Current.Response.StatusCode在返回数据之前设置,所以我认为这不会是一个问题。我还没有在 MVC 4 源代码中找到它。

(这与我的调查有关这个问题但不同的主题足以保证它自己的问题)

我不确定问题是出在 IIS 还是 Web API。我将做进一步的测试来缩小范围。


HttpContext.Current是过去的宿醉。

您需要将响应定义为HttpResponseMessage<T>:

public HttpResponseMessage<MyResource> Post(MyResource myResource)
{
    .... // set the myResource
    return new HttpResponseMessage<MyResource>(myResource)
            {
                StatusCode = HttpStatusCode.Created
            };
}

UPDATE

正如您可能从评论中注意到的,这种方法适用于beta发布。Not the RC.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法让 ASP.NET 4 Web API 返回成功 POST 的状态代码“201 - 创建” 的相关文章

随机推荐

  • 在 Windows 中以编程方式确认打印成功

    我的公司正在开发一个财务应用程序 现在我们必须应对一项新法律 该法律要求我们无论是否打印收据都采取不同的行动 收据使用 Windows 中的标准打印队列在 A4 纸上的激光打印机上打印 有没有办法以编程方式检查某个打印作业是否确实成功 需要
  • 日期格式化后以小写形式显示 AM 和 PM

    格式化日期时间后 时间以大写形式显示 AM 或 PM 但我希望它以小写形式显示 例如 am 或 pm 这是我的代码 public class Timeis public static void main String s long ts 1
  • 单个 EventMachine 反应器中的多个服务器

    是否可以在单个事件机器中运行多个服务器 我的意思是单个客户端连接可以同时使用多个服务 例如 登录服务器对用户进行身份验证 然后用户可以通过单个客户端套接字同时使用聊天室和简单的游戏 例如跳棋 或者每个服务是否需要多个 eventmachin
  • 在 Python 中通过 HTTP 将未知大小的数据从客户端流式传输到服务器

    不幸的是 我之前的问题因是问题的 精确副本 而被关闭 而它绝对不是 特此再次 它不是重复的Python HTTP 使用流式传输大文件 那个处理的是大文件的流传输 我想将文件的任意块一一发送到同一个 http 连接 所以我有一个 20 MB
  • 带 switch 和 ForEach 的 Golang 模板

    我需要创建bash sh来自 golang 程序的文件 应该执行以下操作 Create ForEach循环依赖项并读取类型并根据类型 打印不同的回显消息 命令 我需要它来使用switch on the type与 Golang 的依赖关系
  • 如何将SQL Server数据库迁移到MySQL? [关闭]

    Closed 这个问题是无关 目前不接受答案 我有一个SQL服务器数据库有大量数据和空数据MySQL数据库 现在我想将SQL Server数据库的所有数据 包括数据库架构 复制到MySQL数据库 我考虑过使用原始 SQL 转储 但 SQL
  • 如何在我的网站上显示来自 Amazon S3 的图像?

    我的照片存储在 Amazon S3 上 这些图片是私人的 不公开 所以我无法通过直接链接显示它们s3 amazonaws bucket name key name image name jpg 我知道 Amazon S3 上的图像名称 如何
  • 通过 IN 子句对 SQL Server 结果进行排序

    我有一个使用 IN 子句的存储过程 在我的 ASP NET 应用程序中 我有一个多行文本框 它向存储过程提供值 我希望能够按文本框中输入的值进行排序 我找到了如何在 mySQL 中轻松执行此操作 使用 FIELD 函数 但没有找到 SQL
  • PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件

    我正在使用 mpdf 即时创建 PDF 文件 文件可以在浏览器中正常打开 但 Adob e 给我一个错误 Adobe Acrobat Reader DC 无法打开 example filename pdf 因为它不是受支持的文件类型 或者因
  • Android webview:检测滚动

    我需要知道如何检测用户是否无法在 webView 中滚动 我想在用户向左或向右滑动时生成一个操作 但前提是用户无法滚动 IF the user swipes to the left AND the webview can t scroll
  • MVC中的文件上传

    我正在尝试在 MVC 中上传文件 我在 SO 上看到的大多数解决方案是使用 webform 我不想使用它 并且个人更喜欢使用流 如何在MVC上实现RESTful文件上传 谢谢 Edit 当您认为自己已经解决了所有问题时 您就会意识到还有更好
  • 如何查找具有特定标签(属性)的视图列表

    我为 UI 小部件设置了标签 并且想要检索具有特定标签的视图列表 使用View findViewWithTag test tag 只返回一个视图 而不是所有支持标签的视图 任何帮助表示赞赏 您不应期望从此方法中获得视图数组 因为方法签名本身
  • Sympy:手动处理等式

    我目前正在学习数学课程 我的目标是理解概念和过程 而不是尽快解决问题集 在解方程时 我希望能够自己研究它们 而不是让它们帮我解 假设我们有一个非常简单的方程z 1 4 如果我自己解决这个问题 我显然会从两边减去1 但我不知道是否sympy提
  • bash 脚本中的源文件

    我正在使用两个版本的 ROS 要使用它 我必须为特定版本获取一些环境变量 我想创建一个脚本来执行此操作 但是 如果我创建如下所示的脚本 则未设置变量 它们可能是在子 shell 中设置的 如何将文件发送到主终端 shell 来源 sh so
  • OutputStreamWriter 不追加

    原始代码及其将数据保存到SD卡的工作原理 Writing data to internal storage btnSaveData setOnClickListener new View OnClickListener Override p
  • 动画 WPF DataGrid 行详细信息

    任何人都可以帮助我在打开和关闭时对 WPF DataGrid 行详细信息进行动画处理 例如 当选择行时 幻灯片像手风琴一样打开 而当未选择行时 幻灯片会关闭 我需要一个简单的概念证明 在此先感谢您的帮助 冗长但有效
  • 如果触发器中不存在

    我有两个表concept access 和concept access log 我想创建一个触发器 每次从concept access 中删除某些内容时都会起作用 检查日志表中是否有类似的记录 如果没有 则在从concept access
  • 如何声明 constexpr extern?

    是否可以声明变量extern constexpr并在另一个文件中定义它 我尝试了一下 但是编译器给出了错误 声明constexpr多变的 i 不是一个定义 in h extern constexpr int i in cpp constex
  • 如何创建具有自定义屏幕尺寸的新模拟器?

    在 avd 管理器中 当我尝试创建新的 avd 时 有皮肤部分 但是更新sdk后 我看不到这个部分了 如何使用我自己的屏幕尺寸而不是现有的屏幕尺寸 这些是新模拟器屏幕的旧外观和新外观 old one new one 如果您使用的是最新版本的
  • 无法让 ASP.NET 4 Web API 返回成功 POST 的状态代码“201 - 创建”

    我正在尝试返回 HTTP 状态代码201 Created使用 ASP NET 4 Web API 进行 RESTful POST 操作 但我总是得到200 OK 我目前正在 IIS 7 5 7600 16385 VS 2010 Profes