gpt4 book ai didi

asp.net - 何时在对 ASP.NET Web 服务 (ASMX) 的 JSON 请求中区分大小写很重要?

转载 作者:IT老高 更新时间:2023-10-28 12:55:10 27 4
gpt4 key购买 nike

我已经使用发送到 ASP.NET 2.0 ASMX Web 服务的 JSON 请求(使用 ASP.NET 2.0 的 AJAX Extensions 1.0)完成了以下测试,似乎区分大小写在某些情况下很重要,但在其他情况下并不重要。请参阅以下示例:

  • 案例匹配 100%:

    {"request":{"Address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}

    结果:HTTP/1.1 200 OK

  • 包含对象名称地址的大小写不匹配:

    {"request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}

    结果:HTTP/1.1 200 OK

  • web服务参数request不匹配的情况:

    {"Request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}

    结果:HTTP/1.1 500 内部服务器错误

(快速说明:类 Request 和参数 request 共享相同名称的事实并不相关。即使我将参数名称更改为lrequest,仍然需要区分大小写。)

JSON Web 服务请求中的区分大小写何时重要?此外,这是一般的 Web 服务问题还是特定于 ASP.NET AJAX?


其他背景信息:

我正在为 ASP.NET 2.0 使用 AJAX Extensions 1.0,因此该框架的后续版本可能已解决此问题。如果有,请告诉我。

在跟进我最近的 question regarding formatting JSON strings 中的答案后,我意识到我的请求失败的原因不是因为无效的 JSON(感谢 T.J. Crowder 指出这一点并链接到 http://www.jsonlint.com/ 以进行 JSON 验证)。相反,在进行了更多测试之后,我了解到问题在于 Web 服务没有按照我的 JSON 对象的格式设置,并且我发现 Web 服务在区分大小写方面非常挑剔。有时区分大小写似乎很重要,而其他时候则不重要(参见上面的示例)。

下面是我的 Web 方法和类的 C# 代码:

[WebMethod]
public Response ValidateAddress(Request request)
{
return new test_AddressValidation().GenerateResponse(
test_AddressValidation.ResponseType.Ambiguous);
}

...

public class Request
{
public Address Address;
}

public class Address
{
public string Address1;
public string Address2;
public string City;
public string State;
public string Zip;
public AddressClassification AddressClassification;
}

public class AddressClassification
{
public int Code;
public string Description;
}

最佳答案

根据JSON-RPC spec ,答案总是。

9.0 Case-Sensitivity of Procedure and Parameter Names

Conforming implementations MUST treatprocedure and parameter names as beingcase-sensitive such the names bar andBAR would be seen as two distinctentities.

所以,听起来对你有用的情况是异常(exception),而不是他们没有用的情况。很可能有些人只是不遵守规范。

关于asp.net - 何时在对 ASP.NET Web 服务 (ASMX) 的 JSON 请求中区分大小写很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738321/

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