Me gustaría subir archivos de aplicaciones java/applet mediante http POST evento. Me gustaría evitar el uso de cualquier biblioteca no se incluye en SÍ, salvo que no exista otra (factible) opción.

Hasta ahora me vienen con solución muy simple.

– Crear la Cadena (Buffer) y llenarla con compatible encabezado (http://www.ietf.org/rfc/rfc1867.txt)

– Abrir la conexión a la URL del servidor.openConnection() y escribir el contenido de este archivo para OutputStream.

También tengo que convertir manualmente archivo binario en el POST evento.

Espero que haya alguna mejor, de manera más simple de hacer esto?

  • Por favor, explique por qué usted no desea utilizar una biblioteca externa. Claramente es posible sin ningún tipo de bibliotecas externas, pero, básicamente, va a ser la duplicación del esfuerzo de (digamos) HttpClient (hc.apache.org/httpcomponents-client/index.html)
  • Supongo que él quiere evitar el uso de una biblioteca para reducir el tamaño del applet, reduciendo el tiempo de descarga.
InformationsquelleAutor user40271 | 2008-11-24

2 Comentarios

  1. 8

    Que usted necesita para utilizar el java.net.URL y java.net.URLConnection clases.

    Hay algunos buenos ejemplos en http://java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html

    He aquí algunas rápida y desagradable código:

    public void post(String url) throws Exception {
        URL u = new URL(url);
        URLConnection c = u.openConnection();
    
        c.setDoOutput(true);
        if (c instanceof HttpURLConnection) {
            ((HttpURLConnection)c).setRequestMethod("POST");
        }
    
        OutputStreamWriter out = new OutputStreamWriter(
            c.getOutputStream());
    
        //output your data here
    
        out.close();
    
        BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                        c.getInputStream()));
    
        String s = null;
        while ((s = in.readLine()) != null) {
            System.out.println(s);
        }
        in.close();
    }

    Tenga en cuenta que usted todavía tiene que urlencode() tus datos de envío antes de escribir a la conexión.

  2. 3

    Que usted necesita para aprender acerca de la codificación fragmentada utilizado en las versiones más recientes de HTTP. El Apache HttpClient biblioteca es una buena implementación de referencia para aprender.

Dejar respuesta

Please enter your comment!
Please enter your name here