MVC 4 Web API 帖子

2024-01-02

我想从远程客户端进行插入,因为我需要通过 http 发送数据。
我可以使用getPerformances()正确地与httpClient api/performances?date={0}

我想问一下我的postPorformances()我内部的实施PerformancesController是否正确,如果是,如何从客户端调用它?

这是我的实现:

public class PerformancesController : ApiController
    {
        // GET api/performances
        public IEnumerable<Performance> getPerformances(DateTime date)
        {
            return DataProvider.Instance.getPerformances(date);
        }

        public HttpResponseMessage postPerformances(Performance p)
        {
            DataProvider.Instance.insertPerformance(p);
            var response = Request.CreateResponse<Performance>(HttpStatusCode.Created, p);
            return response;
        }
    }
public class Performance {
    public int Id {get;set;}
    public DateTime Date {get;set;}
    public decimal Value {get;set;}
}

我已经尝试过这个,但我不确定:

  private readonly HttpClient _client;
  string request = String.Format("api/performances");
  var jsonString = "{\"Date\":" + p.Date + ",\"Value\":" + p.Value + "}";
  var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
  var message = await _client.PutAsync(request, httpContent);

你可以使用HttpClient调用这个方法:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://example.com");
    var result = client.PostAsync("/api/performances", new
    {
        id = 1,
        date = DateTime.Now,
        value = 1.5
    }, new JsonMediaTypeFormatter()).Result;
    if (result.IsSuccessStatusCode)
    {
        Console.writeLine("Performance instance successfully sent to the API");
    }
    else
    {
        string content = result.Content.ReadAsStringAsync().Result;
        Console.WriteLine("oops, an error occurred, here's the raw response: {0}", content);
    }
}

在此示例中,我使用通用PostAsync<T>方法允许我发送任何对象作为第二个参数并选择媒体类型格式化程序。在这里,我使用了一个匿名对象,模仿与您相同的结构Performance服务器上的模型和JsonMediaTypeFormatter。你当然可以分享这个Performance通过将其放置在合同项目中,在客户端和服务器之间建立模型,以便服务器上的更改也会自动反映在客户端上。

附注:C# 命名约定规定方法名称应以大写字母开头。所以getPerformances应该GetPerformances甚至更好Get and postPerformances应该PostPerformances甚至更好Post.

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

MVC 4 Web API 帖子 的相关文章

  • 如何在另一个应用程序中挂钩 api 调用

    我正在尝试挂钩另一个应用程序的 ExtTextOut 和 DrawTextExt GDI 方法调用 我知道我需要使用 GetProcAddress 来查找 gdi32 dll 中那些方法的地址 并用我的函数的地址覆盖我想要挂钩的进程中的地址
  • Windows 服务应用程序中自托管 ASP.NET Web API 的问题

    我在网上看到了一些文章 描述了如何在 Windows 服务应用程序中自行托管 ASP NET Web API 请参阅here http www piotrwalat net hosting web api in windows servic
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 在现代 C++ 中,临时生命周期延长何时有用?

    在 C 中 您可以将函数的返回值 返回值 而不是引用 绑定到 const 引用 并且代码仍然有效 因为该临时对象的生命周期将延长到作用域末尾 例如 std string get string return abc void f const
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • 为什么WebApi绑定System.Version参数失败?

    UPDATE 解决了 这里没什么可看的 请继续 我有一个ApiController方法需要一个System Version范围 该参数以 JSON 形式在请求正文中传递 这是发送的内容 专业 0 未成年人 7 构建 0 修订 0 主要修订
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 如何在 Asp.NET MVC 中使用 RedirectToAction() 传递多个对象?

    我想使用redirectToAction 方法传递多个对象 下面是我重定向到的操作结果 public ActionResult GetEmployees Models Department department Models Categor
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 使用具有抗锯齿功能的 C# 更改抗锯齿图像的背景颜色

    我有一个图像需要更改背景颜色 例如 将下面示例图像的背景更改为蓝色 然而 图像是抗锯齿的 所以我不能简单地用不同的颜色替换背景颜色 我尝试过的一种方法是创建第二个图像 仅作为背景 并更改其颜色并将两个图像合并为一个图像 但是这不起作用 因为
  • 为什么 Cdecl 调用在“标准”P/Invoke 约定中经常不匹配?

    我正在开发一个相当大的代码库 其中 C 功能是从 C P Invoked 的 我们的代码库中有很多调用 例如 C extern C int stdcall InvokedFunction int 使用相应的 C DllImport CPlu
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne

随机推荐

  • 警告:格式“%d”需要“int”类型的参数,但参数 2 的类型为“long int”[-Wformat=]

    这段代码是关于 比赛条件 调度和编译器行为在进程或线程同步中起着重要作用 演示同步需求的最简单场景来自尝试修改共享变量值的两个线程 进程之间创建的竞争条件 这通常会导致数据不一致和错误结果 下面的例子演示了这种情况 我是 C 语言新手 对这
  • 为什么读取镶木地板数据集需要比数据集大小更多的内存?

    我正在尝试使用 pyarrow 从 Python 中的 S3 读取镶木地板数据集 S3 UI 显示该路径的大小为 14 3 GB 总共 836 个对象 我在具有 64GB RAM 的 c4 8xlarge EC2 实例上运行代码 尽管 RA
  • Windows UI 自动化无法识别按钮控件

    我在尝试通过以下方式识别时遇到问题Windows 用户界面自动化里面的按钮控件通知区窗口 类名 工具栏Window32 我通过验证Windows 用户界面自动化部署在的工具视窗软件开发工具包这些 图标 是类型控件ControlType Bu
  • Cocoa Pods 错误 ld:找不到 -lPods 的库

    我从可可豆荚中收到了以前从未见过的错误 我已经让它与几个依赖项一起工作得很好 我最近通过 pod 添加了 TestFlightSDK 作为依赖项 但无法存档该项目 它可以很好地适应设备 但拒绝存档 还有其他人遇到过这个问题吗 ld libr
  • 将 Jersey JUL 日志记录重定向到 Log4j2

    我需要将 Jersey 请求 响应日志重定向到我的 log4j2 我通过在我的设备上使用此代码启用了 Jersey 日志记录ApplicationJAXRS extends Application Override public Set
  • 为什么使用 Atlassian Crowd [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想了解 Atlassian 人群通过 LDAP 服务器做什么 看起来大多数 Atlassian 产品都允许您指向 Atlassian 服务器进行授权
  • 停止quartz调试日志记录log4j

    我一直试图关闭令人讨厌的石英调试日志记录 我正在使用 log4j 作为日志记录框架 并且我已经尝试将此行添加到 lg4j 属性文件中 log4j logger org quartz ERROR 我仍然收到大量这些调试日志消息 13 35 4
  • Android 联系人 RAW_CONTACT_ID 与 CONTACT_ID

    我正在使用联系人选择器 如下所示 Intent contactPickerIntent new Intent Intent ACTION PICK Contacts CONTENT URI startActivityForResult co
  • 将多个 PNG 制作成一个 ICO 文件 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 使用 Windows ICO 文件 您可以将多个不同大小的图像打包到同一个 ICO 文件中 然后 Win
  • 多风格设置中的 Android Gradle 1.0 计算版本代码

    计算不同产品风格的版本代码的代码不再在 Android Gradle 1 0 系统中运行 我之前成功地使用了下面的示例代码 http tools android com tech docs new build system tips TOC
  • 如何从 .m 文件创建可执行的 .exe 文件

    我想知道是否有一种方法可以在 MATLAB 中从 m 文件创建 exe 文件 这样它就可以在没有 MATLAB 的机器上运行 就像可以在 C C 中完成一样 我知道编写 MATLAB 函数是一种方法 但我不确定它是否可以在没有 MATLAB
  • JavaScript inflate 实现(可能仅限 FF 3.6)

    我正在编写一些在 FireFox 3 6 中使用 HTML 5 文件 API 的脚本 我有一些放气 压缩 的文件 我需要对它们进行充气 解压缩 我找到了一个few http www codeproject com KB scripting
  • 英特尔 XDK 中的 res/drawable 文件

    xdk中有没有办法将文件传输到android res drawable文件夹 我有以下文件 src android drawable noti icon png www src android drawable noti icon png
  • 长时间关闭时如何处理servlet请求

    我们需要在 Servlet 应用程序中实现优雅的关闭机制 编辑 我们希望使其尽可能简单 这将处理通过操作系统功能发送的终止信号 这将允许系统管理员使用内置的 shell 实用程序 Windows 上的kill 或taskkill 否则他们必
  • 反应本机保存屏幕到图像问题(react-native-view-shot 模块)

    我想得到反应本机视图镜头 https github com gre react native view shot工作 但我认为模块和我安装的 React Native 工具版本存在某种不兼容性 这阻碍了我的工作 核心问题似乎在于这段代码 i
  • 如何配置 OpenSL 来录制语音通话

    我正在使用 MediaRecorder 开发通话录音应用程序语音通话音频源 在某些棉花糖设备中它崩溃了 然后我将源更改为MIC这里传入的声音没有被记录 由于java的限制 现在我正在研究原生android代码来录制语音通话 我设法使用录制音
  • python 不被识别为内部或外部命令[重复]

    这个问题在这里已经有答案了 我尝试安装this https github com joyent node wiki Installation软件 为此需要Python 我从以下位置安装了Pythonhere http python org
  • PHP 中的随机 ID/数字生成器

    我正在我的数据库中构建一个 代理 ID 列表 满足以下要求 ID 长度必须为 9 位 仅限数字 ID 中的相同数字不得超过 3 个 ID 不能包含超过 2 个连续的相同数字 即 887766551 不能有 888 到目前为止 我已经完成了第
  • 在 Python 中将数据添加到嵌套列表

    我有一个嵌套列表 例如 nlist 1 2 3 4 5 6 7 8 9 在将此列表插入数据库之前 我想向其中添加一个 列 并在新列的每一行中具有相同的值 例如 nlist a 1 2 3 a 4 5 6 a 7 8 9 例如 当原始嵌套列表
  • MVC 4 Web API 帖子

    我想从远程客户端进行插入 因为我需要通过 http 发送数据 我可以使用getPerformances 正确地与httpClient api performances date 0 我想问一下我的postPorformances 我内部的实