团队冲刺第五天

今天实现了获取云端数据库的数据在app中进行显示的功能。

最初准备使用本地的数据库,但通过筛选考虑,最终决定使用okhttp,方便对用户及后端数据的及时了解。

主要代码:

private void get(){
        new Thread(){
            @Override
            public void run() {
                super.run();
                String url="http://39.103.196.146:8888/getNewsData/GetNewsDataServlet";
                try {
                    String result=getData(url);
                    manageResponse(result);
//                    Log.e("内容:",result);
                    Message msg=Message.obtain();
                    msg.obj=list;
                    handler.sendMessage(msg);
                } catch (IOException | JSONException e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    private String getData(String url) throws IOException {
        RequestBody responseBody=new FormBody.Builder()
                .add("classify", String.valueOf(classify+1))
                .build();
        Request request=new Request.Builder().post(responseBody).url(url).build();
        Response response=okHttpClient.newCall(request).execute();
        return response.body().string();
    }
    private void manageResponse(String result) throws JSONException {
        JSONArray jsonArray=new JSONArray(result);
        for(int i=0;i<jsonArray.length();i++)
        {
            JSONObject jsonObject=jsonArray.getJSONObject(i);
            String title=jsonObject.getString("title");
            String time=jsonObject.getString("time");
            String place=jsonObject.getString("place");
            String author=jsonObject.getString("author");
            String content=jsonObject.getString("content");
            String img=jsonObject.getString("img");
            Bean bean=new Bean();
            bean.setTitle(title);
            bean.setTime(time);
            bean.setPlace(place);
            bean.setAuthor(author);
            bean.setContent(content);
            bean.setImg(img);
            list.add(bean);
        }
    }

 使用okhttp获取数据时,需要新建一个子线程进行数据的获取,不能再主线程使用,会报错。

使用okhttp也有get和post方法,可以根据需要进行选择使用。

posted @ 2021-05-07 13:41  哦心有  阅读(22)  评论(0)    收藏  举报