网络封装,使用HttpurlConnection+Handler

public class HeplerConUtils {

public HeplerConUtils() {};

public HeplerConUtils get(final String path) {
    new Thread() {
        @Override
        public void run() {
            super.run();
            try {
                URL url = new URL(path);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(3000);
                int code = connection.getResponseCode();
                if (code == HttpURLConnection.HTTP_OK) {
                    InputStream inputStream = connection.getInputStream();
                    String s = CharStreams.toString(new InputStreamReader(inputStream, "UTF-8"));
                    Message message = Message.obtain();
                    message.obj = s;
                    handler.sendMessage(message);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }.start();
    return this;
}

Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        String str = (String) msg.obj;
        //调用接口方法
        helpListener.getHelpListener(str);
    }
};

//写一个接口
public interface HelpListener {
    void getHelpListener(String str);
}

//写一个属性
private HelpListener helpListener;

//写监听,可让外部访问
public void getData(HelpListener helpListener) {
    this.helpListener = helpListener;
}

}

//在Java代码中
 private void getnetData() {
    new HeplerConUtils().get(Url).getData(new HeplerConUtils.HelpListener() {
        @Override
        public void getHelpListener(String str) {
            //gson解析
            Gson gson = new Gson();
            User user = gson.fromJson(str, User.class);
            //Toast.makeText(MainActivity.this,user.toString(),Toast.LENGTH_SHORT).show();

            //创建一个ImageView集合
            ArrayList<ImageView> imageViews = new ArrayList<>();
            for (int i = 0; i < user.getData().size(); i++) {
                //初始化imgeview
                ImageView imageView = new ImageView(MainActivity.this);

                Integer pic = Integer.valueOf(user.getData().get(i).getIcon());
                //把图片添加到imageview对象中
                imageView.setBackgroundResource(pic);
                imageViews.add(imageView);
            }

            //配置适配器
            Myadapter myadapter = new Myadapter(imageViews);
            pager.setAdapter(myadapter);

        }
    });
}

}

猜你喜欢

转载自blog.csdn.net/wzj_8899174/article/details/83313375