¿Cómo obtener Entity en el servlet usando MultipartEntity?
Si subo un archivo a mi servlet de esta manera:
HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.tumblr.com/api/write"); try { MultipartEntity entity = new MultipartEntity(); entity.addPart("type", new StringBody("photo")); entity.addPart("data", new FileBody(image)); httppost.setEntity(entity); HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) {} catch (IOException e) {}
¿Cómo puedo recuperar el contenido en el servlet?
- (httplog) -static: issbsettingenabled false android
- Cómo pasar los datos del servlet a la aplicación android
- Qué es stringentity en android y su uso
- Tener un error mySQL, columna desconocida where clause
- Cómo comprimir un JSONObject enviarlo sobre Http en Android?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { request.??? }
- Estoy utilizando Google App Server como mi API Servlet
- ajax xhr.getResponseHeader ("encabezado de usuario") no funciona para el navegador nativo de Android
- ¿Qué encabezado se debe utilizar para enviar GZIP comprimido JSON de Android Client a Server?
- Llamar a servlet Java desde Android
- GCM enviar imagen en lugar de mensaje
- App Engine - RequestFactory vs servlets vs otros enfoques
- Cómo enviar un archivo de audio de un cliente android a un servidor servlet
- Archivo de Java subiendo dolorosamente lento
- Mantenimiento de la sesión HTTP al acceder a un servlet desde Android
Si la versión de su Servlet Container o Server o Engine <3.0 (como 2.5 o anterior), puede aprovechar la biblioteca de terceros Apache Commons FileUpload . Aunque el archivo implica un uso para los archivos subidos, también reparte eficazmente con datos publicados cargado de POST-Métodos como explicó aquí .
La API Servlet, desde la versión 3.0 ofrece algunas llamadas en oder para tratar con los datos publicados, con se envió dentro de una solicitud POST. El único requisito es que la codificación MIME-Type del contenido de su entidad sea " multipart / form-data ".
Entonces tu puedes recuperar cada "parte" de tu contenido usando cualquiera de los siguientes:
-
GetPart (String partName) : donde "partName" es el nombre de una parte de su entidad Multicontent.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { String partName = "type"; // or "data" Part part = request.getPart(partName); // read your StringBody type BufferedReader reader = new BufferedReader( new InputStreamReader(part.getInputStream())); String line =""; while((line=reader.readLine())!=null) { // do Something with a line System.out.println(line); } // or with a binary Data partName="data"; part = request.getPart(partName); // read your FileBody data InputStream is = part.getInputStream(); // do Something with you byte data is.read(); // is.read(b); // .. }
-
GetParts () :
Logra los mismos resultados que getPart (partName), mientras que los datos dados aquí una colección de toda la parte de los datos enviados. Para recuperar cada par de la parte de esta colección, sólo use la iteración thread-safe sobre la colección:
Iterator<Part> iterator = request.getParts().iterator(); Part parts = null; while (iterator.hasNext()) { parts = (Part) iterator.next(); //rest of the code block removed } }
Debido a que getPart () / getParts () sólo funciona empezando en la versión Servlet 3.0, asegúrese de usar el contenedor Servlet secundario y / o actualizar su contenedor Servlet actual. Algún contenedor de Servlet o Servlet que soporte 3.0:
- Tomcat 7.0 :
- Jboss Web
- Resina
- Android: Archivo XML de caché de RSS Feed
- La aplicación basada en biblioteca instala 2 archivos APK, no uno – ¿Por qué?