HttpClient GetStringAsync结果不一致



我有一个非常简单的控制台应用程序,用户可以在其中输入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();
}

文本";Twitch是世界";只有在提供的url没有指向现有配置文件的情况下,才会存在于结果中。我遇到的问题是HttpClient似乎只返回";右";结果第一次。例如,我启动程序并输入";xqc";。这将给我的结果

User exists: True

然而,如果我现在尝试输入";xqc";再次(或任何其他现有的配置文件名称(,它将始终导致以下结果

User exists: False

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

Console.ReadKey()正在消耗输入的第一个字符,因此第二次字符串username将不包含"xqc";,但是";qc";。

最新更新