Flurl.http PostJsonAsync消失了

时间:2015-11-14 00:21:47

标签: c# asp.net-mvc api http flurl

我有一个发布到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 "";
            }
        }
    }

2 个答案:

答案 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

https://github.com/tmenier/Flurl