同步调用 webAPI 方法
Call webAPI method synchronously
我想从 windows 服务调用 webAPI 方法,我不需要说调用是异步的。如果我确实以异步方式处理此调用,我将不得不在我的调用链中一直传播异步,而我不想这样做。相反,我希望同步调用该方法。
我看到的每个地方的答案都是将异步贯穿你的代码(我不想要,也不需要这个)或者使用变通方法 described here。我认为会有一种更简洁的方法来简单地从 windows 服务调用 webAPI 方法,而无需执行这些选项中的任何一个。我是漏掉了什么还是就是这样?
我通过阅读其他帖子和那篇文章知道执行以下代码很糟糕并且可能会死锁,但我想现在除了使用 hack 之外还有更好的方法 'fix'。最新的.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,它具有本地调用休息服务的同步方法。
我想从 windows 服务调用 webAPI 方法,我不需要说调用是异步的。如果我确实以异步方式处理此调用,我将不得不在我的调用链中一直传播异步,而我不想这样做。相反,我希望同步调用该方法。
我看到的每个地方的答案都是将异步贯穿你的代码(我不想要,也不需要这个)或者使用变通方法 described here。我认为会有一种更简洁的方法来简单地从 windows 服务调用 webAPI 方法,而无需执行这些选项中的任何一个。我是漏掉了什么还是就是这样?
我通过阅读其他帖子和那篇文章知道执行以下代码很糟糕并且可能会死锁,但我想现在除了使用 hack 之外还有更好的方法 'fix'。最新的.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,它具有本地调用休息服务的同步方法。