Tengo problemas para encontrar la mejor forma de codificar los parámetros POST para una llamada al servidor. Escribo un cliente C# que será atendido por un servidor PHP. Quiero permitir una gran flexibilidad en los parámetros, por lo que mi plan actual es tener un único parámetro que use JSON para codificar. Por ejemplo:Cómo codificar los parámetros HTTP POST (cliente C# a servidor PHP)?
params = {"object":"Main","function":"doecho","params":["echothis...."]}
estoy usando el objeto C# WebRequest y contentType de "application/x-www-form-urlencoded; charset = UTF-8". Los datos llegan al servidor y todo funciona como se espera hasta que agregue caracteres JSON ilegales en los datos.
Por ejemplo, si uso los siguientes datos, no puedo hacer un json_decode en el servidor. El servidor parece girar automáticamente el 40% en una comilla doble (") cuando lo leí con $ this-> getRequest() -> getParams();. (Zend_Framework)
params = {"object":"Main","function":"doecho","params":["echothis%25%5d%22%40%3d%26...."]}
¿Cuál es la mejor ¿Practico aquí? ¿Necesito base64 para codificar los datos? ¿Hay algo obvio que me falta con el tipo de contenido o una configuración de php?
Tengo control total sobre el cliente y el servidor, por lo que me gustaría saber cuál es la mejor/mejor que hacer.
Sí, esto tiene sentido para mí. ¡Gracias! – Jeff
Debido a que nit-picking puede prevenir errores, tenga en cuenta que "params" (pero no el "=") también debe estar codificado por URI. Como sé que "params" cuando URI-encoded sigue siendo "params", no lo hago como un atajo, pero si era "párams" o "los params" entonces tendría que serlo. –