I am uploading a file from one server to another server using a Java Program 'POST' method. But I am getting below exception.
java.io.IOException: Error writing to server at sun.net.(HttpURLConnection.java:582) at sun.net.(HttpURLConnection.java:594) at sun.net.(HttpURLConnection.java:1216) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) at com.test.rest.HttpURLConnectionExample.TransferFile(HttpURLConnectionExample.java:107) at com.test.rest.HttpURLConnectionExample.main(HttpURLConnectionExample.java:44) I have other method who will authenticate with server. Which will be be called from below code. When I am getting response from server, I am getting above exception. To Transfer a file to server I have written below method. My sample code is below:
public static void TransferFile(){ String urlStr = ""; File tempFile = new File("/home/MyPath/Workspace/Sample/virtualhaircut.mp3"); BufferedWriter br=null; HttpURLConnection conn = null; URL url; try { url = new URL(urlStr); AuthenticationUser(); conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", new MimetypesFileTypeMap().getContentType(tempFile.getName())); } catch (MalformedURLException e1) { System.out.println("Malformed"); e1.printStackTrace(); } catch (ProtocolException e) { System.out.println("Protocol"); e.printStackTrace(); } catch (IOException e) { System.out.println("IO"); e.printStackTrace(); } System.out.println("line 69"); FileInputStream fis; OutputStream fos; try { System.out.println("line 75"); System.out.println("line 77"); fis = new FileInputStream(tempFile); fos = conn.getOutputStream(); byte[] buf = new byte[1024 * 2]; int len = 0; System.out.println("line 80"); while ((len = fis.read(buf)) > 0) { fos.write(buf, 0, len); System.out.println("line 85"); } System.out.println("line 87"); buf = null; fos.flush(); fos.close(); fis.close(); }catch (FileNotFoundException e) { System.out.println(""); e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { if (conn.getResponseCode() == 200) { System.out.println("here"); } } catch (IOException e) { e.printStackTrace(); } } 11 Answer
It is possible that the error ocurred because the receiving server closed the connection, maybe because your file exceeded the size limit. Have you tested with small files?
7