Hi,
I have to upload files - text files as well as binary files - to a server using 
http put method. I get the URL from the server and upload my sample files to 
the server without any failure.
But when I open the uploaded files on the server I find modifications in the 
files like follows (original content in green):

------------------------------file: 
Walze.txt-------------------------------------------------------------------
--359OQxCzKReuMiQUCDjZkKneprgsPnZApeFpvoPF
Content-Disposition: form-data; name="Walze.txt"; filename="Walze.txt"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary

line 1: content
line 2: content
--359OQxCzKReuMiQUCDjZkKneprgsPnZApeFpvoPF--
------------------------------file: 
Walze.txt-------------------------------------------------------------------

Here is my code:

public List<String> put(File fIn, String sUrl) throws IllegalArgumentException, 
ClientProtocolException, IOException {
                if (fIn != null && sUrl != null && !sUrl.isEmpty()) {

                               CloseableHttpClient client = 
HttpClients.createDefault();
                               try {
                                               HttpPut request = new 
HttpPut(sUrl);

                                               FileBody file = new 
FileBody(fIn);

                                               HttpEntity reqEntity = 
MultipartEntityBuilder.create().addPart(fIn.getName(), file).build();
                                               request.setEntity(reqEntity);

                                               CloseableHttpResponse response = 
client.execute(request);

                                               List<String> vLines = 
this.readResponse(response);

                                               this.handleResponse(response);

                                               return vLines;
                               } finally {
                                               try {
                                                               client.close();
                                               } catch (IOException eIgnore) {
                                               }
                               }
                }
}

private List<String> readResponse(CloseableHttpResponse response) throws 
IOException {
                List<String> vLines = new ArrayList<String>();

                HttpEntity resEntity = response.getEntity();
                if (resEntity != null) {
                               BufferedReader reader = new BufferedReader(new 
InputStreamReader(resEntity.getContent()));

                               String s;
                               while (null != (s = reader.readLine())) {
                                               if (!s.isEmpty()) {
                                                               vLines.add(s);
                                               }
                               }
                }
                return vLines;
}

private void handleResponse(CloseableHttpResponse response) throws IOException {
                Logger.getLogger(this.getClass()).debug("Response status line 
[" + response.getStatusLine() + "]");
                Logger.getLogger(this.getClass()).debug("Response status code 
[" + response.getStatusLine().getStatusCode() + "]");
                Logger.getLogger(this.getClass()).debug("Response status phrase 
[" + response.getStatusLine().getReasonPhrase() + "]");

                Header[] vHeaders = response.getAllHeaders();
                for (Header header : vHeaders) {
                               String sName = header.getName();
                               String sValue = header.getValue();
                               
Logger.getLogger(this.getClass()).debug("Response header " + sName + " [" + 
sValue + "]");
                }

                HttpEntity resEntity = response.getEntity();
                if (resEntity != null) {
                               
Logger.getLogger(this.getClass()).debug("Response content type [" + 
resEntity.getContentType() + "]");
                               
Logger.getLogger(this.getClass()).debug("Response content length [" + 
resEntity.getContentLength() + "]");

                               EntityUtils.consume(resEntity);
                }

                try {
                               response.close();
                } catch (IOException eIgnore) {
                }
}


Can anyone please tell me what is missing in my code or what can be the failure?

Thanks and Regards

Bastian


CENIT AG, Industriestrasse 52-54, 70565 Stuttgart, Tel.: +49 711 7825-30, Fax: 
+49 711 7825-4000, Internet: www.cenit.com
Geschaeftsstellen: Berlin, Frankfurt, Hamburg, Hannover, Muenchen, Oelsnitz, 
Ratingen, Saarbruecken
Vorstandsmitglieder: Kurt Bengel, Matthias Schmidt
Aufsichtsratsmitglieder: Andreas Schmidt (Vorsitzender des Aufsichtsrats), 
Hubert Leypoldt, Andreas Karrer
Bankverbindungen:
Deutsche Bank (BLZ 600 700 70) Kto. 1661 040 IBAN : DE85 6007 0070 0166 1040 00 
SWIFT-CODE : DEUTDESS,
Commerzbank (BLZ 600 400 71) Kto. 532 015 500 IBAN : DE83 6004 0071 0532 0155 
00 SWIFT-Code : COBADEFF600,
Registergericht: Amtsgericht Stuttgart
Handelsregister: HRB Nr. 19117
Umsatzsteuer: ID-Nr. DE 147 862 777

Reply via email to