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