【发布时间】:2018-09-24 11:44:58
【问题描述】:
我用 async await 写了一些简单的代码,但是当我尝试运行它时,编译器会抛出一个System.InvalidOperationException。
完整的错误信息是:
未处理的异常:System.InvalidOperationException:ContentType 中提供的字符集无效。无法使用无效字符集将内容读取为字符串。
System.ArgumentException:“ISO-8859-2”不是受支持的编码名称。有关定义自定义编码的信息,请参阅 Encoding.RegisterProvider 方法的文档。
代码:
class Program
{
static async Task Main(string[] args) => await asyncDoItAsync();
private static async Task<string> asyncDoItAsync()
{
HttpClient client = new HttpClient();
Task<string> url = client.GetStringAsync("http://google.pl");
while(!url.IsCompleted)
{
WhenWaiting();
}
string url_length = await url;
return url_length;
}
private static void WhenWaiting()
{
Console.WriteLine("Waiting ...");
Thread.Sleep(90);
}
}
【问题讨论】:
-
我正在查看实际的问题,希望能尽快为您提供答案,但顺便说一句,不是 编译器 抛出异常。除了使用动态类型的情况(编译器的一部分在执行时有效地存在),任何 compiler 错误都会在您编译时出现,而不是在运行时出现。
-
作为次要问题,您提供了一个示例很棒,但它可以简化 - 我有一个更简单的示例,它仍然可以演示问题。 ..你愿意我把它编辑成你的问题吗?
-
我预计
Accept-Charset: utf-8标头会解决这个问题,但事实并非如此。嗯。