2015-09-18 4 views
0

Как отправить файл с помощью http-запроса в java? Я вижу вопрос Send image file using java HTTP POST connections и Upload files from Java client to a HTTP server но они слишком старые и не работают.Как отправить файл с httprequest в java?

+0

Почему бы и нет? Что происходит? – SLaks

+0

вы можете рассмотреть мой [http-клиент] (http://bayou.io/release/0.9/docs/http/Http_Client.html#Form_Submission) – ZhongYu

+0

количество классов устарело –

ответ

3

Хороший пример приведен в многооконной части файла Загрузить пример из Apache HTTPClient

http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/MultipartFileUploadApp.java?view=markup

Той часть, которая на самом деле сообщений файла является

  String targetURL = cmbURL.getSelectedItem().toString(); 
      // add the URL to the combo model if it's not already there 
      if (!targetURL 
       .equals(
        cmbURLModel.getElementAt(
         cmbURL.getSelectedIndex()))) { 
       cmbURLModel.addElement(targetURL); 
      } 

      PostMethod filePost = new PostMethod(targetURL); 

      filePost.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE, 
      cbxExpectHeader.isSelected()); 
      try { 
       appendMessage("Uploading " + targetFile.getName() + " to " + targetURL); 
       Part[] parts = { 
        new FilePart(targetFile.getName(), targetFile) 
       }; 
       filePost.setRequestEntity(
        new MultipartRequestEntity(parts, filePost.getParams()) 
        ); 
       HttpClient client = new HttpClient(); 
       client.getHttpConnectionManager(). 
        getParams().setConnectionTimeout(5000); 
       int status = client.executeMethod(filePost); 
       if (status == HttpStatus.SC_OK) { 
        appendMessage(
         "Upload complete, response=" + filePost.getResponseBodyAsString() 
        ); 
       } else { 
        appendMessage(
         "Upload failed, response=" + HttpStatus.getStatusText(status) 
        ); 
       } 
      } catch (Exception ex) { 
       appendMessage("ERROR: " + ex.getClass().getName() + " "+ ex.getMessage()); 
       ex.printStackTrace(); 
      } finally { 
       filePost.releaseConnection(); 
      } 

Надеется, что это какое-то вам помочь ,

+0

Я пишу свою программу в консоли. это не работает для меня. пожалуйста, просто это, если вы можете –

+0

Мне нужен простой метод, который дает URL и файл и отправляет запрос –

+0

, если вы знакомы с github. Я загрузил образец проекта для публикации файлов. Этот проект использует httpclient 4.3.6, поэтому код немного отличается от указанного выше кода. [HttpPostExample] (https://github.com/thomasramapuram/httpPostTest) –

Смежные вопросы