gpt4 book ai didi

c# - RestSharp:ExecuteAsync 从不响应

转载 作者:行者123 更新时间:2023-11-30 16:24:51 25 4
gpt4 key购买 nike

我正在尝试使用 ExecuteAsync<T> 发出异步获取请求,但它从不回应。令我困惑的是 ExecuteAsync有效,两种同步方法也是如此 ExecuteExecute<T> .

这是我的代码:

var restClient = new RestClient("http://localhost:44268/api/");
var request = new RestRequest("jobs/{id}", Method.GET);
request.AddUrlSegment("id", "194");

// works
var req1 = restClient.Execute(request).Content;

// works
var req2 = restClient.Execute<Job>(request).Content;

// works
var req3 = restClient.ExecuteAsync(request, (restResponse) =>
{
var test = restResponse.Content;
Console.WriteLine(test);
});

var req4 = restClient.ExecuteAsync<Job>(request, (restResponse) =>
{
// this code is never reached
var test = restResponse.Content;
Console.WriteLine(test);
});

成功地调用了 API,但它永远不会回调。为什么?我做错了什么吗?

最佳答案

ExecuteAsync 是异步的。

这意味着对它的调用会立即返回,而无需等待响应。

然后您的程序将照常运行。如果这是一个控制台应用程序并且执行到您的 Main 方法的末尾,整个程序将退出。

所以,你有一个竞争条件。大多数时候,您的程序会在延续(lambda 回调)有机会运行之前退出。

尝试在 Main 方法的末尾调用 Console.ReadLine(); 以防止提前退出。

关于c# - RestSharp:ExecuteAsync<T> 从不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437410/

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