2011-10-11 136 views
0

我开发了一个应用程序,它将使用https发布数据到服务器。代码在设备上运行良好,现在突然间我得到了java.net.SocketException:在少数设备中,操作超时android https post - 例外

以下是我的代码。

public void connectMe() { 
    httpClient = new DefaultHttpClient(); 
    HttpConnectionParams 
      .setConnectionTimeout(httpClient.getParams(), 25000); 
    HttpConnectionParams.setSoTimeout(httpClient.getParams(), 25000); 
    try { 
     HttpResponse response = null; 
     switch (method) { 
     case GET: 
      response = httpClient.execute(new HttpGet(url)); 
      break; 
     case POST: 
      try { 
       HttpPost httpPost = new HttpPost(url); 
       UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(
         params, HTTP.UTF_8); 
       httpPost.setEntity(p_entity); 

       response = httpClient.execute(httpPost); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      break; 
      } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

以下是logcat的信息

W/System.err(3593): java.net.SocketException: The operation timed out 

W/System.err(3593): at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocketImpl(Native Method) 

W/System.err(3593): at org.apache.harmony.luni.platform.OSNetworkSystem.connectStreamWithTimeoutSocket(OSNetworkSystem.java:130) 

W/System.err(3593): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:246) 

W/System.err(3593): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533) 

W/System.err(3593): at java.net.Socket.connect(Socket.java:1074) 

W/System.err(3593): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 

W/System.err(3593): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:153) 

W/System.err(3593): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 

W/System.err(3593): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 

W/System.err(3593): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348) 

W/System.err(3593): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 

W/System.err(3593): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 

W/System.err(3593): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 

W/System.err(3593): at com.envision.utils.MyHttpConnection.connectMe(MyHttpConnection.java:128) 

我卸载并重新安装应用程序,我以前不制定出了同样的异常。但是在工厂数据重置之后,上面的代码在同一个移动设备和同一个网络中工作。

任何人都可以请解释我发生了什么..?我很困惑..

谢谢。

回答

0

这看起来像是一个临时的网络问题。你也可以尝试去飞行模式,并恢复正常,再次测试。

+0

没有没有帮助我。我相信它不是一个临时的网络问题。我尝试过不同的时间,即使我几次重新启动移动。仅供参考,该网址是从移动浏览器工作。 –