zoukankan      html  css  js  c++  java
  • AsyncTask异步交互和httpurlconnection结合使用

    //网络请求数据

    package com.baidu.myutils;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class MyUtils {
        
        //设置请求方式
        public static String Json_url="http://93.gov.cn/93app/get_search.do?key=%E4%B9%9D%E4%B8%89&startNum=0";
        //判断网络是否连接
        public static boolean Netisavilable(Context context){
            //获得网络管理
            ConnectivityManager cManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获得网络详情
            NetworkInfo networkInfo=cManager.getActiveNetworkInfo();
            if(networkInfo==null||!networkInfo.isAvailable()){
                return false;
            }
            return true;
            
        }
        
        public static String check_j(String url){
            String str="";
            StringBuffer sb=new StringBuffer(Json_url);
            try {
                //创建url
                URL myurl=new URL(sb.toString());
                HttpURLConnection urlConnection=(HttpURLConnection) myurl.openConnection();
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);
                if(urlConnection.getResponseCode()==200){
                    BufferedReader br=new BufferedReader
                    (new InputStreamReader
                            (urlConnection.getInputStream(),"utf-8"));
                    
                    
                    str=br.readLine();
                }
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return str;
        }
    }


    package com.baidu.myutils;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;
    
    public class MyUtils {
        
        //设置请求方式
        public static String Json_url="http://93.gov.cn/93app/get_search.do?key=%E4%B9%9D%E4%B8%89&startNum=0";
        //判断网络是否连接
        public static boolean Netisavilable(Context context){
            //获得网络管理
            ConnectivityManager cManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获得网络详情
            NetworkInfo networkInfo=cManager.getActiveNetworkInfo();
            if(networkInfo==null||!networkInfo.isAvailable()){
                return false;
            }
            return true;
            
        }
        
        public static String check_j(String url){
            String str="";
            StringBuffer sb=new StringBuffer(Json_url);
            try {
                //创建url
                URL myurl=new URL(sb.toString());
                HttpURLConnection urlConnection=(HttpURLConnection) myurl.openConnection();
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);
                if(urlConnection.getResponseCode()==200){
                    BufferedReader br=new BufferedReader
                    (new InputStreamReader
                            (urlConnection.getInputStream(),"utf-8"));
                    
                    
                    str=br.readLine();
                }
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return str;
        }
    }

    //解析数据  AsyncTask异步交互

    package combaidu.zong;
    
    import java.util.List;
    
    import com.baidu.adapter.MyAdapter;
    import com.baidu.myutils.MyUtils;
    import com.baidu.vo.MyData;
    import com.baidu.vo.MyNews;
    import com.google.gson.Gson;
    
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.app.Activity;
    import android.database.CursorJoiner.Result;
    import android.view.Menu;
    import android.widget.ListView;
    
    public class MainActivity extends Activity {
        // http://93.gov.cn/93app/get_search.do?key=%E4%B9%9D%E4%B8%89&startNum=0
    
        private ListView lv;
        private List<MyData> list;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            init();
        }
        private void init() {
            //找到相应的控件
            lv = (ListView) findViewById(R.id.lv);
            new MyTask().execute(MyUtils.Json_url);
        }
        
        class MyTask extends AsyncTask<String, String , String>{
    
            
            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                String str=params[0];
                String jstr=MyUtils.check_j(str);
                
                return jstr;
            }
            @Override
            protected void onPostExecute(String result) {
                System.out.println(result+"--------------");
                
                Gson g=new Gson();
                MyNews myNews=g.fromJson(result, MyNews.class);
                list = myNews.getList();
                System.out.println(list+"-------集合为:-------");
                lv.setAdapter(new MyAdapter(MainActivity.this,list));
                super.onPostExecute(result);
            }
            
        }
    
    }
  • 相关阅读:
    二级指针与二维数组
    二维数组的两种访问方式
    函数返回局部变量
    函数指针
    链表
    二叉树各种遍历
    二叉树常见问题
    C语言单链表实现19个功能完全详解
    halcon算子翻译——set_fuzzy_measure_norm_pair
    Halcon算子翻译——set_fuzzy_measure
  • 原文地址:https://www.cnblogs.com/1995yu/p/5448100.html
Copyright © 2011-2022 走看看