necesito para pasar una marca de tiempo con una zona horaria de desplazamiento en una solicitud GET, por ejemplo,Hacer una NSURL con una (% 2B) codificada plus
2009-05-04T11: 22: 00 + 01: 00
Esto se ve como dos argumentos "2009-05-04T11: 22: 00" y "01:00" para el script PHP receptor (sobre el cual no tengo control).
NSURL no codifica signos más, pero si hago un NSURL utilizando la cadena
2009-05-04T11: 22: 00% 2B01: 00
la url termino con contiene:
2009-05-04T11: 22: 00% 252B01: 00
¿Alguna idea de cómo puedo conservar mi signo más codificado o simplemente evitar que NSURL codifique algo?
No entiendo cómo esta es la respuesta correcta. Las preguntas se preguntan cómo crear un objeto NSURL adecuado. Si esta cadena se utiliza para crear un objeto NSURL, el signo% nuevamente se codificará como% 25. Por favor aclara –
Esto resuelve el problema. Sin embargo, no es la solución correcta ya que solo trata con '+' y no con otros caracteres que necesitan ser codificados. –
Esto no funcionó para mí. En cambio, codifiqué la marca de tiempo usando la respuesta de Ric Santos ANTES de crear el urlString. En mi experiencia, nunca he visto a nadie que necesite codificar los nombres de los parámetros, el esquema, el dominio u otras partes de una url. Por lo tanto, siempre es mejor codificar los valores de los parámetros por separado. Pero, sería bueno tener una función que separaría una url, la codificaría correctamente y luego la volvería a unir. Supuse que stringByAddingPercentEscapesUsingEncoding lo hizo, pero aparentemente falla para casos como + signos. – Brainware