简单 Web 客户端不起作用:自定义区域性不能通过 LCID 传递,只能通过名称传递

本文关键字:传递 LCID 自定义 不起作用 区域性 不能 简单 Web 客户端 | 更新日期: 2023-09-27 18:33:42

>我正在尝试使用WebClient向URL发送一个简单的POST请求,但是我得到了

Web 客户端请求期间发生异常。

而在内部异常中

自定义区域性不能通过 LCID 传递,只能通过名称传递。

显然,互联网上没有关于此例外的讨论。

这是我的代码:

public static void Send(string message)
{
    var url = "https://api.mailgun.net/v3/sandbox1ebb54bdb39044988d3c916d833769b7.mailgun.org/messages";
    using (var client = new WebClient())
    {
        client.Credentials = new NetworkCredential("api", "some_password");
        var values = new NameValueCollection();
        values["from"] = "Mailgun Sandbox <postmaster@sandbox1ebb54bdb39044988d3c916d833769b7.mailgun.org>";
        var response = client.UploadValues(url, values);
        var responseString = Encoding.Default.GetString(response);
        Reader.log(responseString);
    }
}

client.UploadValues(url, values)时引发异常

简单 Web 客户端不起作用:自定义区域性不能通过 LCID 传递,只能通过名称传递

显然

,这是旧版本的 .NET 的已知问题(如果您的系统区域设置不是美国(https://connect.microsoft.com/VisualStudio/feedback/details/1741767/compiler-error-customized-cultures-cannot-be-passed-by-lcid-only-by-name

迁移到 .NET 4.0 或更高版本可解决此问题。

更改系统的区域设置。控制面板>时钟和区域>格式然后将语言更改为美国