HttpClient GetStringAsync 结果不一致

Mac*_*acA 1 c# httpclient web-scraping

我有一个非常简单的控制台应用程序,用户可以在其中输入 Twitch 用户的名称,以查看是否存在具有该名称的 Twitch 个人资料。这是代码:

while (true)
{
    string username = Console.ReadLine();

    HttpClient client = new HttpClient();
    string result = await client.GetStringAsync($"https://www.twitch.tv/{username}");

    Console.WriteLine("User exists: " + !result.Contains("Twitch is the world"));

    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

仅当提供的网址未指向现有个人资料时,文本“Twitch is the world”才会存在于结果中。我遇到的问题是 HttpClient 似乎只在第一次返回“正确”的结果。例如,我启动程序并输入“xqc”。这会给我结果

User exists: True
Run Code Online (Sandbox Code Playgroud)

但是,如果我现在尝试再次输入“xqc”(或任何其他现有的配置文件名称),它总是会产生以下结果

User exists: False
Run Code Online (Sandbox Code Playgroud)

我检查了实际的字符串,它发生的原因是,由于某种原因,第一个请求之后发出的每个请求都会返回 Twitch 的个人资料未找到页面。我不明白为什么会发生这种情况。是否有我遗漏的东西,或者我应该在这里使用其他东西而不是 HttpClient?

小智 5

Console.ReadKey()正在消耗输入的第一个字符,因此第二次字符串用户名将不包含“xqc”,而是包含“qc”。