简单实用的OkHttp

来源:互联网 发布:淘宝订单编号生成规则 编辑:程序博客网 时间:2024/06/08 11:38
public class MainActivity extends AppCompatActivity {
   private ListView lv;
    private Myadp madp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv= (ListView) findViewById(R.id.lv );
        initData();
    }
    private void initData() {
        //网络地址
        String url="http://api.tianapi.com/huabian/?key=5baef83129decfa305bbc140b085d8a1&num=10 

";
        //创建OKHttp对象
        OkHttpClient okHttpCient=new OkHttpClient();
        //创建一个Request
        Request request=new Request.Builder().url(url).build();
        //创建一个call对象
        Call call=okHttpCient.newCall(request);
        //将请求添加到调度中
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if(response.isSuccessful())
                {
                    //获取json串
                    final String message=response.body().string();
                    //打印json
                    System.out.println("json============="+message);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //在子线程中解析json
                            getJson(message);
                        }
                    });
                }
            }
        });
    }
     private void getJson(String result) {
        //这里需要导入一个Gson的Jar包      
        Gson gson = new Gson();
        Bean bean = gson.fromJson(result, Bean.class);
        List<Bean.NewslistBean> list = bean.getNewslist();
        for (Bean.NewslistBean b : list) {
            System.out.println("bean========" + b.getTitle() + " " + b.getCtime() + " " + b.getPicUrl());
        }
        if(madp==null)
        {
            madp =new Myadp(list,this);
            lv.setAdapter(madp);
        }
        else{
            madp.notifyDataSetChanged();
        }
    }
    }