C#GetResponseAsync():如何正确使用

时间:2017-05-21 10:28:16

标签: c# exception asynchronous

我正在使用Twitch API开发应用程序,我尝试使用异步请求。

我之前使用同步请求进行测试,如下所示:

private async static Task<string> generalRequest(string url, string method, object payload = null, string accessToken = null, API api = API.V5, string clientId = null)
{
    url = appendClientId(url, ClientId);

    var request = WebRequest.CreateHttp(url);
    request.Method = method;
    request.ContentType = "application/json";

    var response = request.GetResponse();
    using (var reader = new StreamReader(response.GetResponseStream()))
    {
        string data = await reader.ReadToEndAsync();
        return data;
    }
}

效果很好,但这不是异步的。

我尝试使用GetResponseAsync()这样:

using (var response2 = await request.GetResponseAsync())
{
    using (var reader = new StreamReader(response2.GetResponseStream()))
    {
        string data = await reader.ReadToEndAsync();
        return data;
    }
}

然而,它从未通过第一个using,我得到了以下例外:

  

异常levée:mscorlib.dll中的'System.Net.WebException'

     

异常levée:LivestreamerTwitchViewer.exe中的'System.Exception'

     

异常levée:mscorlib.dll中的'System.Exception'

那我做错了什么?

如何正确使用GetResponseAsync()

提前感谢您的帮助。

0 个答案:

没有答案