1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como enviar imagem via Http POST no Java-SE

Pessoal é o seguinte eu necessito que uma aplicação Java SE envie para um servidor em Python uma imagem utilizando http POST eu tenho a seguinte função:

public String HttpPOST(String url, File fileToUpload) {
        try {
            obj = new URL(url);
            //this.ObjetoPost = URLEncoder.encode(dados, "UTF-8");
            conHttp = (HttpURLConnection)obj.openConnection();
            String paramToSend = (new StartIni()).getId_term();
            String boundary = Long.toHexString(System.currentTimeMillis()); // Just generate some unique random value.
            conHttp.setDoOutput(true);
            conHttp.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
            conHttp.setRequestMethod("POST");
            PrintWriter writer = null;

            try {
                writer = new PrintWriter(new OutputStreamWriter(conHttp.getOutputStream(), "UTF-8"));

                writer.println("--" + boundary);
                writer.println("Content-Disposition: form-data; name=\"paramToSend\"");
                writer.println("Content-Type: text/plain; charset=UTF-8");
                writer.println();
                writer.println(paramToSend);

                writer.println("--" + boundary);
                writer.println("Content-Disposition: form-data; name=\"fileToUpload\"; filename=\"midia.jpg\"");
                writer.println("Content-Type: image/jpeg");
                writer.println();
                BufferedReader reader = null;
                BufferedImage read=null;
//                InputStreamReader outputStream;
                try {
                reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileToUpload), "UTF-8"));

                for (String line; (line = reader.readLine()) != null;) {
                    writer.println(line);

                    //response.append(line);
                }
            } finally {
                if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {}
            }

            writer.println("--" + boundary + "--");
        } finally {
            if (writer != null) writer.close();
        }

            String linha;
            response = new StringBuffer();
            in_ = new BufferedReader(new InputStreamReader(conHttp.getInputStream()));
            while((linha = in_.readLine()) != null) {
              response.append(linha);
            }
      }catch (MalformedURLException ex) {
                System.out.println("A URL está mal formada: " + ex.getMessage());
      }catch (IOException ex) {
                System.out.println("Não foi possível efetuar a conexão: " + ex.getMessage());
      }finally {
            if(outfile != null) {
                try {
                    outfile.close();
                }catch (IOException ex) {
                        System.out.println("Não consegui fechar o stream de entrada: " + ex.getMessage());
                }
            }
            if(in != null) {
                try {
                    in.close();
                }catch (IOException ex) {
                    System.out.println("Não consegui fechar o stream de saída: " + ex.getMessage());
                }
            }
      conHttp.disconnect();
    }


        return response.toString();
    }

O problema é que a função era para enviar um arquivo txt e eu alterei para tentar enviar uma imagem ela chega ao servidor e é salva o problema é que não se consegue visualizar. Conto com a experiencia de vocês...

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags python http post java ou faça a sua própria pergunta.