openconnection - url connection android studio
Android: ¿Cómo almacenar la url en el archivo de recursos string.xml? (4)
El porcentaje de codificación puede hacer el truco: http://en.wikipedia.org/wiki/Percent-encoding Básicamente, tendrá algo como esto: www.miosito.net?prova%26reg=bis
Estoy tratando de almacenar una URL completamente calificada, con parámetros de consulta también:
www.miosito.net?prova®=bis
pero está causando un problema porque ®
es similar a ®
entidad y android me dicen que y la entidad html no está bien escrita.
Necesito esto porque cada configuración regional utiliza un conjunto de parámetros de consulta url completamente diferente.
Lo intenté con [[CDATA[.. ]]
pero esta sintaxis no me gustó con el analizador xml.
El problema no es con &req
sino con &
sí mismo. Para XML / HTML tendría que usar &
entidad (o &
), pero para las URL, debería más bien codificar URL ( ver documentos ) cadenas, y en ese caso dicho &
debería reemplazarse con %26
. Así que tu cadena final debería verse como:
www.miosito.net?prova%26reg=bis
Guárdelo así:
<string name="my_url">"www.miosito.net?prova&reg=bis"</string>
Donde &
es el equivalente XML del símbolo &
comercial &
.
Puede incluir su url entre comillas dobles, algo como:
<string name="my_url">"www.miosito.net?prova®=bis"</string>
Esta es una forma recomendada de incluir recursos de cadenas en Android.
Actualización 1: Eche un vistazo al siguiente enlace para obtener más información:
http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
Actualización 2: @ WebnetMobile.com: Correcto, de hecho :) ''&'' está siendo tratado como un carácter especial por xml y el encierro entre comillas no funciona. Probé
www.miosito.net?prova%26reg=bis
y tampoco funcionó. Incluso traté de incluirlo entre comillas pero aún no funcionó. Me estoy perdiendo de algo ?
Mientras tanto, lo siguiente funciona:
<string name="my_url">www.miosito.net%1$sprova%2$sreg=bis</string>
y luego en el código:
Resources resources=getResources();
String url=String.format(resources.getString(R.string.my_url),"?","&") ;
''% 1 $ s'' y ''% 2 $ s'' son especificadores de formato, muy parecido a lo que se usa en printf en C. ''% 1 $ s'' es para cadenas, ''% 2 $ d'' es para números decimales y así en.