c# - 来自 web api Controller 的异步回调

标签 c# asp.net-web-api

我是 Web API 的新手,我有一个不寻常的模式需要实现。在我的 Controller 的 Post 方法中,它是获取一个包含 CallbackURL 的对象。然后它将立即向调用者返回一个 HTTP 响应。之后,它将使用第 3 方、场外 API 对该对象执行一些操作。完成该工作后, Controller 将把该工作的结果发布到 CallbackURL。

但是,我不知道如何在 Web API 中实现它。一旦我返回 HTTP 响应, Controller 的生命周期就结束了,对吗?如果是这样,返回响应后如何执行我需要做的工作?

最佳答案

如果您只需要将结果发布到一个 url,而不是发布到发起调用的客户端,您可以像这样简单地做一些事情:

public string MyAPIMethod(object input)
{
    Task.Factory.StartNew(() =>
    {        
        //call third-party service and post result to callback url here.        

    });

    return "Success!";
}

api 调用将立即返回,您创建的任务将在不同的线程中继续处理。

关于c# - 来自 web api Controller 的异步回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621889/

相关文章:

c# - 使用 RegEx 从字符串中删除编码的 HTML

c# - 64 位整数上的 C++ 与 C# 按位运算 - 性能

c# - 自托管 OWIN 到网络上的其他计算机

c# - 无法将字符串数组传递给 WebApi Actionfilter

c# - 带有 odata 和 $expand 的 Web Api 2.2

c# - .NET Core 中的专用路由无法识别,生成 404

c# - 如何从 C# 中的 userSettings 部分检索值

c# - ASP.NET 框架错误

c# - 如何使我的应用程序打开文件?

c# - OData超媒体