javascript - When is case sensitivity important in JSON requests to ASP.NET web services (ASMX)? -
i've done following tests json requests sent asp.net 2.0 asmx web service (using ajax extensions 1.0 asp.net 2.0) , seems case sensitivity important in situations not in others. see following examples:
case matches 100%:
{"request":{"address":{"address1":"123 main street","address2":"suite 20","city":"new york","state":"ny","zip":"10000","addressclassification":null}}}
result:
http/1.1 200 ok
case of contained object name
address
not match:{"request":{"address":{"address1":"123 main street","address2":"suite 20","city":"new york","state":"ny","zip":"10000","addressclassification":null}}}
result:
http/1.1 200 ok
case of web service parameter
request
not match:{"request":{"address":{"address1":"123 main street","address2":"suite 20","city":"new york","state":"ny","zip":"10000","addressclassification":null}}}
result:
http/1.1 500 internal server error
(quick note: fact class request
, parameter request
share same name not relavant. if change parameter name lrequest
, case sensitivity still required.)
when case sensitivity in json web service requests important? also, general web service issue or specific asp.net ajax?
additional background information:
i'm using ajax extensions 1.0 asp.net 2.0, may have been addressed in later versions of framework. if please let me know.
after following answers in recent question regarding formatting json strings, realized reason request failing wasn't because of invalid json (thanks t.j. crowder pointing out , linking http://www.jsonlint.com/ json validation). rather, after doing more testing, learned problem because web service didn't how json object formatted , discovered web service picky in regards case sensitivity. seems case sensitivity important, whereas other times not (see examples above).
here's c# code web method , classes looks like:
[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; }
according json-rpc spec, answer always.
6.5. case-sensitivity of procedure , parameter names
conforming implementations must treat procedure , parameter names being case-sensitive such names bar , bar seen 2 distinct entities.
so, sounds situations when worked exceptions, not cases didn't. chances on side of equation not adhering specs.
Comments
Post a Comment