我正在使用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()
?
提前感谢您的帮助。