는 ASP에 대한 JSON 요청에서 대소문자 민감도가 중요합니다.NET 웹 서비스(ASMX)?
저는 ASP로 보내진 JSON 요청으로 다음과 같은 테스트를 했습니다.NET 2.0 ASMX 웹 서비스(ASP용 AJAX Extensions 1.0 사용)NET 2.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
개체명이포함된경우
Address
일치하지 않음:{"request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}
결과:
HTTP/1.1 200 OK
Case of Web Service
request
일치하지 않음:{"Request":{"address":{"Address1":"123 Main Street","Address2":"suite 20","City":"New York","State":"NY","Zip":"10000","AddressClassification":null}}}
결과:
(빠른 메모:그 수업이 사실은.Request
매개변수와request
동일한 이름을 공유하는 것은 관련이 없습니다.매개 변수 이름을 다음으로 변경해도lrequest
, 대소문자 구분이 여전히 필요합니다.)
JSON 웹 서비스 요청에서 대소문자 구분이 중요한 경우는 언제입니까?또한, 이것은 일반적인 웹 서비스 문제인가요 아니면 ASP에만 해당되는 문제인가요.넷 아약스?
추가 배경 정보:
ASP용으로 AJAX Extensions 1.0을 사용하고 있습니다.NET 2.0이므로 이 문제는 이후 버전의 프레임워크에서 해결되었을 수 있습니다.그렇다면 저에게 알려주시기 바랍니다.
JSON 문자열을 포맷하는 것과 관련된 가장 최근 질문에서 답변을 한 후, 저는 제 요청이 실패한 이유가 잘못된 JSON 때문이 아니라는 것을 깨달았습니다(J.Crowder가 이를 지적하고 JSON 검증을 위해 http://www.jsonlint.com/ 에 링크해 준 것에 감사드립니다).오히려 테스트를 좀 더 해본 결과, 문제는 웹 서비스가 제 JSON 객체의 포맷 방식이 아니기 때문이라는 것을 알게 되었고, 웹 서비스가 대소문자 구분에 있어서 매우 까다롭다는 것을 알게 되었습니다.대소문자 구분이 중요한 경우도 있는 반면 그렇지 않은 경우도 있는 것 같습니다(위의 예 참조).
웹 메서드 및 클래스에 대한 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 사양에 따르면 답은 항상 다음과 같습니다.
9.0 대소문자 구분 절차 및 매개변수 명칭
적합한 구현은 절차와 매개 변수 이름을 대소문자를 구분하는 것으로 취급해야 합니다. 이름 바와 BAR는 별개의 두 개체로 간주됩니다.
그래서, 당신에게 효과가 있었던 상황들은 예외이지, 효과가 없었던 상황들은 아닌 것 같습니다.아마도 어떤 면에서 누군가가 사양을 준수하지 않았을 가능성이 있습니다.
언급URL : https://stackoverflow.com/questions/2738321/when-is-case-sensitivity-important-in-json-requests-to-asp-net-web-services-asm
'programing' 카테고리의 다른 글
자바스크립트 style.display="none" 또는 jQuery.hide ()가 더 효율적입니까? (0) | 2023.10.22 |
---|---|
PowerShell 콘솔에서 환경 변수를 사용하는 방법은 무엇입니까? (0) | 2023.10.22 |
UILabel 글꼴 크기? (0) | 2023.10.22 |
블로그 소프트웨어 - 워드프레스 대 블로그 엔진.NET 대 기타 항목 (0) | 2023.10.22 |
도커 - 이미지에서 호스트로 파일을 복사하려면 어떻게 해야 합니까? (0) | 2023.10.22 |