繁体   English   中英

同步调用webAPI方法

[英]Call webAPI method synchronously

我想从Windows服务中调用webAPI方法,并且不需要说异步调用。 如果我确实以异步方式处理此呼叫,那么我将不得不在我不希望这样做的整个呼叫链中传播异步。 相反,我希望该方法被同步调用。

在我看来,到处都只有在整个代码中保持异步(我不需要或不需要),或者使用此处所述的解决方法。 我认为,有一种更干净的方法可以简单地从Windows服务中调用webAPI方法,而无需执行这些选项中的任何一个。 我是否缺少某些东西,或者只是它的样子?

通过阅读其他文章和该文章,我知道执行以下代码是不好的,并且可能导致死锁,但是我想象到现在,除了使用hack之外,还有一种更好的“修复”方法。 最新的.NET版本中是否添加了当前的首选方法?

public void Send(MeasurementProcessResults measurementResult)
{
    var response = httpClient.PostAsJsonAsync("api/notification", measurementResult).Result;

    if(response.IsSuccessStatusCode)
    {
        //Do some stuff here
    }
    else
    {
        //throw an exception.
    }
}

我最终使用了RestSharp ,它具有用于本地调用rest服务的同步方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM