分享

org.apache.http.conn.HttpHostConnectException: Connection to refused

 dmw_zgl 2015-03-17

android出现这个问题:

http://www.oschina.net/code/snippet_12_5909


  1. private void dopost(String val){  
  2.      //封装数据  
  3.      Map<String, String> parmas = new HashMap<String, String>();  
  4.      parmas.put("name", val);  
  5.       
  6.      DefaultHttpClient client = new DefaultHttpClient();//http客户端  
  7.      HttpPost httpPost = new HttpPost("http:///test/post.php");  
  8.       
  9.      ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();  
  10.      if(parmas != null){  
  11.          Set<String> keys = parmas.keySet();  
  12.          for(Iterator<String> i = keys.iterator(); i.hasNext();) {  
  13.               String key = (String)i.next();  
  14.               pairs.add(new BasicNameValuePair(key, parmas.get(key)));  
  15.          }  
  16.     }  
  17.       
  18.   try {  
  19.    UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, "utf-8");  
  20.          /*  
  21.           *  将POST数据放入HTTP请求  
  22.           */  
  23.          httpPost.setEntity(p_entity);  
  24.          /*  
  25.           *  发出实际的HTTP POST请求  
  26.            */  
  27.          HttpResponse response = client.execute(httpPost);  
  28.          HttpEntity entity = response.getEntity();  
  29.          InputStream content = entity.getContent();  
  30.    String returnConnection = convertStreamToString(content);  
  31.          show.setText(returnConnection);  
  32.   } catch (IllegalStateException e) {  
  33.    e.printStackTrace();  
  34.   } catch (IOException e) {  
  35.    e.printStackTrace();  
  36.   }  
  37.       
  38.  }  
  39.   
  40.   private String convertStreamToString(InputStream is) {  
  41.    BufferedReader reader = new BufferedReader(new InputStreamReader(is));  
  42.          StringBuilder sb = new StringBuilder();  
  43.          String line = null;  
  44.          try {  
  45.               while ((line = reader.readLine()) != null) {  
  46.                    sb.append(line);  
  47.               }  
  48.          } catch (IOException e) {  
  49.               e.printStackTrace();  
  50.          } finally {  
  51.               try {  
  52.                    is.close();  
  53.               } catch (IOException e) {  
  54.                    e.printStackTrace();  
  55.               }  
  56.          }  
  57.          return sb.toString();  
  58.  }  

解决方法,加权限!!


<uses-permission android:name="android.permission.INTERNET"/>




如果用接着出现异常android.os.NetworkOnMainThreadException

参考

http://www.cnblogs.com/freexiaoyu/archive/2012/04/13/2445707.html


  1. 注意:造成这样的错误原因是代码不符合Android规范,如果把上面访问方式改为异步操作就不会出现在4.0上访问出现 android.os.NetworkOnMainThreadException异常  
  2.   
  3.  如:  
  4.   
  5. new Thread(){  
  6. @Override  
  7. public void run(){  
  8. //你要执行的方法  
  9. //执行完毕后给handler发送一个空消息  
  10. handler.sendEmptyMessage(0);  
  11. }  
  12. }.start();  
  13.   
  14.    
  15.   
  16. //定义Handler对象  
  17. private Handler handler =new Handler(){  
  18. @Override  
  19. //当有消息发送出来的时候就执行Handler的这个方法  
  20. public void handleMessage(Message msg){  
  21. super.handleMessage(msg);  
  22. //处理UI  
  23. }  
  24. };  







    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多