1

我有一个发布到 API 的类,该 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 "";
            }
        }
    }
4

2 回答 2

3

另一位同事帮我找出问题所在。它与异步/等待/同步有关。更改为从调用中直接返回结果解决了问题。

    public string post( object values ) 
    {
        try
        {
            var responseString = address.PostJsonAsync(values).ReceiveString().Result;
            return responseString;
        }
        catch (Exception e)
        {
            //Console.Error.WriteLine(e.Message);
            return "";
        }            
    }
于 2015-11-16T23:09:09.870 回答
1

习惯使用 Flurl.Http 包,而不仅仅是 Flurl 包

在 NuGet 上获取它:PM> Install-Package Flurl.Http

或者只获取没有 HTTP 功能的独立 URL 构建器:PM> Install-Package Flurl

https://github.com/tmenier/Flurl

于 2019-10-28T12:44:38.567 回答