zoukankan      html  css  js  c++  java
  • Android通过HttpURLConnection链接到网络,并获取网络数据

    1.判断网络是否连接

        private void networkIsconnected(String str){
            ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()){
                new DownloadUrl(str).execute();
            }else {
                display.setText("网络没有链接上!");
            }
        }

    2.创建一个任务类,实现网络下载后台执行

        //创建一个任务类
        private class DownloadUrl extends AsyncTask<Integer,Integer,String>{
            private String str ;
    
            public DownloadUrl(String url){
                this.str = url;
            }
    
            @Override
            protected String doInBackground(Integer... urls) {
                try {
                    return downloadurl(str);
                } catch (IOException e) {
                    return "网络地址错误!";
                }
            }
    
            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                display.setText(s);
            }
        }

    3.创建一个下载数据的函数

        //根据url下载数据内容
        private String downloadurl(String url) throws IOException {
    
            InputStream is = null;
            int len = 500;
    
            URL myurl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) myurl.openConnection();
            conn.setConnectTimeout(10000);
            conn.setReadTimeout(15000);
            conn.setDoInput(true);
            conn.connect();
            int response = conn.getResponseCode();
            Log.d("DEBUG_TAG", "The response is: " + response);
            is = conn.getInputStream();
            String contengString = readIt(is,len);
            return contengString;
        }

    4.读取输入流传过来的inputstream

        public String readIt(InputStream stream, int len) throws IOException{
            Reader reader = null;
            reader = new InputStreamReader(stream, "UTF-8");
            char[] buffer = new char[len];
            reader.read(buffer);
            return new String(buffer);
        }

    5.最后在oncreate中直接运行即可

    networkIsconnected(urltext.getText().toString());
  • 相关阅读:
    struts2之JSP与Action的关系
    struts2之基本配置
    Android笔记之BroadCast判断网络状况
    Android笔记之监听左右滑动事件
    Android笔记之转到主线程运行
    springboot项目启动报错 Failed to configure a DataSource: 'url' attribute is not specified and no embedde
    centos6 初次安装成功,未显示eth0网卡的信息
    layerui上传文件
    判断当前浏览器类型
    jquery重置下拉框
  • 原文地址:https://www.cnblogs.com/android-host/p/5329925.html
Copyright © 2011-2022 走看看