2016-05-24 85 views
0

我試圖做的是將數據作爲字符串發送到我的外部服務器之一。但是在設置請求後,文件系統上的文件被損壞。使用HttpPost發送文件後文件被破壞

這裏是我讀我的文件轉換成字符串

File file = new File("/some/path/on/my/hdd/testimg.png"); 
FileInputStream fis = new FileInputStream(file); 
byte[] binaryData = new byte[(int) file.length()]; 
fis.read(binaryData); 
String content = Base64.encodeBase64URLSafeString(binaryData); 
fis.close(); 

這裏是我該怎麼辦POST請求:

HttpClient client = HttpClientBuilder.create().build(); 
HttpPost request = new HttpPost("some.url"); 
... some headers ... 
request.setEntity(new StringEntity(this.body)); // this.body is the String 
HttpResponse response = client.execute(request); // HERE THE FILE GETS CORRUPTED 
InputStream is = response.getEntity().getContent(); 
this.result = IOUtils.toString(is, "UTF-8"); 

誰能告訴我,爲什麼文件/some/path/on/my/hdd/testimg.png在我的硬盤我發送請求後會被破壞?

感謝您的建議!

+0

使用'Content-Type:image/png' ..... –

+0

不起作用... – riedelinho

回答

1

正如你說,你的當地文件系統中的文件被請求後損壞,只有幾種可能性:

  • 它已經提前損壞
  • 有在寫程序的其他地方文件
  • 如果你發送請求的服務器在同一臺計算機上運行,​​在服務器上運行的應用程序可能是罪魁禍首
+0

我找到了解決辦法。這是你提到的一點。 我發送請求的服務器在同一本地計算機上運行,​​它覆蓋了數據。現在它是固定的。 – riedelinho