estoy enviando un archivo a un servidor como un octeto-corriente, y tengo que especificar el nombre de archivo en el encabezado:el envío de texto no ASCII en la cabecera HTTP POST
String filename = "«úü¡»¿.doc"
URL url = new URL("http://www.myurl.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.addRequestProperty("Accept", "application/json; charset=UTF-8");
conn.addRequestProperty("Content-Type", "application/octet-stream; charset=UTF-8");
conn.addRequestProperty("Filename", filename);
// do more stuff here
El problema es que algunos de los archivos que necesito enviar tienen nombres de archivo que contienen caracteres que no son ASCII. He leído que no puede enviar texto que no sea ASCII en un encabezado HTTP.
Mis preguntas son:
- ¿Puede enviar mensajes de texto no ASCII en una cabecera HTTP?
- Si puede, ¿cómo hace esto? El código anterior no funciona cuando el nombre del archivo contiene texto que no es ASCII. El servidor responde con "Bad Request 400".
- Si no puede, ¿cuál es la forma típica de evitar esta limitación?
Hmmm, aún no funciona. Lo hice: conn.addRequestProperty ("Filename", URLEncoder.encode (filename)); – guest99