Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#GetResponseAsync():如何正确使用_C#_Exception_Asynchronous - Fatal编程技术网

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

C#GetResponseAsync():如何正确使用,c#,exception,asynchronous,C#,Exception,Asynchronous,我正在使用TwitchAPI开发一个应用程序,并尝试使用异步请求 我以前使用同步请求进行测试,如下所示: private async static Task<string> generalRequest(string url, string method, object payload = null, string accessToken = null, API api = API.V5, string clientId = null) { url = appendClien

我正在使用TwitchAPI开发一个应用程序,并尝试使用异步请求

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

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;
    }
}
using (var response2 = await request.GetResponseAsync())
{
    using (var reader = new StreamReader(response2.GetResponseStream()))
    {
        string data = await reader.ReadToEndAsync();
        return data;
    }
}
但是,它从未使用通过第一个
,我得到了以下例外:

异常级别:mscorlib.dll中的“System.Net.WebException”

异常级别:LivestreamerTwitchViewer.exe中的“System.Exception”

异常级别:mscorlib.dll中的“System.Exception”

那我做错了什么

如何正确使用
GetResponseAsync()


提前感谢您的帮助。

请显示异步方法签名。看到完整的身体也没什么坏处。@Karolis-我唯一的猜测是OP使用的方法与以前相同,但将
var request=request.GetResponse()
替换为
return
语句,并在第二个代码块中使用(…)
语句。除非方法和/或正文的其余部分不同,否则我认为发布第二次尝试的完整方法正文是不必要的。@GeoffJames如果是这样,那么我能想到的唯一问题是API中的错误,这是不可能的。这就是我请求的理由。另外,关于异步/异步方法,在返回不同底层任务类型的情况下,方法的签名也很重要,尽管这是一个很长的过程。:)@我不同意。API不会区分代码中的同步/异步请求。这与API本身无关,除非请求本身在方法的异步版本中确实发生了轻微的更改。@0_yami_0-您是否能够检查您正在接收的
System.Net.WebException
并查看其中是否有稍多的描述错误消息,你可以在你的问题中发表?