tutorial example consumir consume asp.net javascript ajax web-services json

example - ¿Cuándo es importante la sensibilidad a las mayúsculas y minúsculas en las solicitudes JSON a los servicios web ASP.NET(ASMX)?



jquery ajax (1)

Según las especificaciones de JSON-RPC , la respuesta es siempre.

6.5. Sensibilidad a los casos de nombres de procedimientos y parámetros

Las implementaciones conformes DEBEN tratar los nombres de los procedimientos y los parámetros como si distinguen entre mayúsculas y minúsculas, por lo que la barra de nombres y BAR se verán como dos entidades distintas.

Por lo tanto, parece que las situaciones en las que funcionó fueron las excepciones, no los casos en los que no funcionaron. Las posibilidades son que alguien en algún lado de la ecuación simplemente no se adhirió a las especificaciones.

He realizado las siguientes pruebas con solicitudes JSON enviadas a un servicio web ASP.NET 2.0 ASMX (utilizando AJAX Extensions 1.0 para ASP.NET 2.0) y parece que la sensibilidad a los casos es importante en algunas situaciones pero no en otras. Vea los siguientes ejemplos:

  • Caso coincide con el 100%:

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

    Resultado: HTTP/1.1 200 OK

  • El caso del nombre del objeto contenido La Address no coincide:

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

    Resultado: HTTP/1.1 200 OK

  • El caso de request parámetro de servicio web no coincide:

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

    Resultado: HTTP/1.1 500 Internal Server Error

(Nota rápida: el hecho de que la Request clase y la request parámetro compartan el mismo nombre no es relevante. Incluso si cambio el nombre del parámetro a lrequest , aún se requiere sensibilidad a mayúsculas).

¿Cuándo es importante la sensibilidad a las mayúsculas y minúsculas en las solicitudes del servicio web JSON? Además, ¿se trata de un problema general del servicio web o es específico de ASP.NET AJAX?

Información de fondo adicional:

Estoy usando las Extensiones de AJAX 1.0 para ASP.NET 2.0, por lo que esto puede haber sido abordado en versiones posteriores del marco. Si es así, por favor hágamelo saber.

Después de dar seguimiento a las respuestas en mi pregunta más reciente con respecto al formato de cadenas JSON , me di cuenta de que la razón por la que mi solicitud estaba fallando no era por JSON no válido (gracias a TJ Crowder por señalarlo y enlazarlo a http://www.jsonlint.com/ para la validación JSON). Más bien, después de realizar algunas pruebas más, aprendí que el problema se debía a que el servicio web no sabía cómo estaba formateado mi objeto JSON y descubrí que el servicio web era muy delicado en lo que respecta a la sensibilidad a los casos. Parece que a veces la sensibilidad a los casos es importante, mientras que otras veces no lo es (vea los ejemplos anteriores).

Así es como se ve mi código C # para el método web y las clases:

[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; }