2016-04-26 62 views
2

我尝试使用此代码连接到服务器上传图像。java.net.SocketException:发送失败:ECONNRESET(连接重置对等)

try { 
     url = new URL(requestURL); 

     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setRequestProperty("connection", "close"); 
     System.setProperty("http.keepAlive", "false"); 
     conn.setReadTimeout(15000); 
     conn.setConnectTimeout(15000); 
     conn.setRequestMethod("POST"); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 

     OutputStream os = conn.getOutputStream(); 
     BufferedWriter writer = new BufferedWriter(
       new OutputStreamWriter(os, "UTF-8")); 
     writer.write(getPostDataString(postDataParams)); 

     writer.flush(); 
     writer.close(); 
     os.close(); 
     int responseCode = conn.getResponseCode(); 

     if (responseCode == HttpsURLConnection.HTTP_OK) { 
      BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      sb = new StringBuilder(); 
      String response; 
      while ((response = br.readLine()) != null){ 
       sb.append(response); 
      } 
     } 
    } catch (IOException e){ 
     if (e.getMessage().indexOf("Connection reset by peer") > 0); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

我总是得到SocketException,就像上面一样。

04-26 18:53:26.091 13039-13092/kovacsdev.hu.facec W/System.err: java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer) 
04-26 18:53:26.092 13039-13039/kovacsdev.hu.facec I/SurfaceTextureClient: [STC::queueBuffer] (this:0x53cf5360) fps:45.86, dur:1002.96, max:57.77, min:1.67 
04-26 18:53:26.095 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:550) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.IoBridge.sendto(IoBridge.java:519) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at java.net.PlainSocketImpl.write(PlainSocketImpl.java:511) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:46) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:269) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:231) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.net.http.RetryableOutputStream.writeToSocket(RetryableOutputStream.java:70) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:814) 
04-26 18:53:26.096 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:293) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:505) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at kovacsdev.hu.facec.RequestHandler.sendPostRequest(RequestHandler.java:43) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at kovacsdev.hu.facec.UploadUI$1UploadImage.doInBackground(UploadUI.java:108) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at kovacsdev.hu.facec.UploadUI$1UploadImage.doInBackground(UploadUI.java:82) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
04-26 18:53:26.097 13039-13092/kovacsdev.hu.facec W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
04-26 18:53:26.098 13039-13092/kovacsdev.hu.facec W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
04-26 18:53:26.098 13039-13092/kovacsdev.hu.facec W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
04-26 18:53:26.098 13039-13092/kovacsdev.hu.facec W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
04-26 18:53:26.098 13039-13092/kovacsdev.hu.facec W/System.err:  at java.lang.Thread.run(Thread.java:838) 
04-26 18:53:26.098 13039-13092/kovacsdev.hu.facec W/System.err: Caused by: libcore.io.ErrnoException: sendto failed: ECONNRESET (Connection reset by peer) 
04-26 18:53:26.099 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.Posix.sendtoBytes(Native Method) 
04-26 18:53:26.099 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.Posix.sendto(Posix.java:151) 
04-26 18:53:26.100 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:177) 
04-26 18:53:26.100 13039-13092/kovacsdev.hu.facec W/System.err:  at libcore.io.IoBridge.sendto(IoBridge.java:517) 

UploadUI包含线108此代码段:

String result = rh.sendPostRequest(UPLOAD_URL,data); 

其中rh是代表RequestHandler。它应该在SQL数据库中发布图片的详细信息,但服务器端代码似乎正在工作。

+0

我看不到图像。 UTF-8不适用于图像。 – greenapps

+0

'rh.sendPostRequest'。如果这导致错误,那么为什么不显示它的代码? – greenapps

回答

3

你好我也面临着使用以下code.I相同problme.Now解决希望它也将帮助你..试试吧....

将这个下面的代码中的onCreate()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_upload_documents); 




    if (android.os.Build.VERSION.SDK_INT > 9) { 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
       .permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
    } 

    //Statement or Controls Declaration or your code 

} 
相关问题