gpt4 book ai didi

C# Web 服务 - 适用于 IE 但不适用于 Safari

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:10 25 4
gpt4 key购买 nike

我有一个简单的 web 服务,我想通过 http post 访问它。网络服务代码如下所示:

[WebMethod]
public int Insert(string userDate, string DeviceID)
{

bool output;
DateTime date;
output = DateTime.TryParse(userDate, out date);
if (!output)
{
// Throw an error
return -1;
}
int Device;
output = int.TryParse(DeviceID, out Device);
if (!output)
{
// Throw an Error
return -1;
}
UsersDatesBLL BLL = new UsersDatesBLL();
return BLL.Insert(Device, date);
}

我可以使用 Internet Explorer 正常访问该服务,只需调用以下命令即可将结果完美地插入到数据库中:CountDownService.asmx/Insert?userDate=24/04/1980&DeviceID=3435然而,在 Safari 和 Firefox 上测试时,服务总是返回 -1

有人知道这是什么原因吗? Safari 对字符串的编码方式是否与 IE 不同?

问候米克

最佳答案

用户可以在浏览器中配置他们的 UI 语言和文化。浏览器将此信息作为 Accept-Language HTTP header 传递在对您的网络服务的请求中。 That information may be used to set the "current culture" of the ASP.NET session处理请求。它作为静态属性可用 CultureInfo.CurrentCulture .

DateTime.TryParse将使用该“当前文化”来确定它应该期望的许多日期时间字符串格式中的哪一个 - 除非您使用 overload您在此处明确将文化作为 IFormatProvider 传递。显然,您正在测试的浏览器配置不同,因此 ASP.NET 期望每个浏览器具有不同的日期时间格式。如果您希望独立于浏览器设置解析日期时间,那么您应该使用 CultureInfo.InvariantCulture作为格式提供者。

关于C# Web 服务 - 适用于 IE 但不适用于 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1711532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com