我有一个发布到API的类,它在我的单元测试中工作但不是我的MVC控制器。
在测试仪中,以下行工作正常,但在我的MVC应用程序中调用它时,我无法超越以下行。
public async Task<string> post( object values )
{
using (var client = new HttpClient())
{
try
{
var responseString = await address.PostJsonAsync(values).ReceiveString();
return responseString; //Never reaches this line while in MVC.
}
catch (Exception e)
{
//Console.Error.WriteLine(e.Message);
return "";
}
}
}
答案 0 :(得分:1)
另一位同事帮我找到问题所在。它与async / await / sync有关。 更改为从通话中返回结果修复了问题。
public string post( object values )
{
try
{
var responseString = address.PostJsonAsync(values).ReceiveString().Result;
return responseString;
}
catch (Exception e)
{
//Console.Error.WriteLine(e.Message);
return "";
}
}
答案 1 :(得分:0)
用于使用Flurl.Http包,而不仅仅是Flurl包
在NuGet上获取它:PM>安装包Flurl.Http
或者仅获取不具有HTTP功能的独立URL构建器:PM> Install-Package Flurl