zoukankan      html  css  js  c++  java
  • httpclient + AsyncTask 请求数据 || httpclient + handler 请求数据

    public class MyAsy extends AsyncTask<String, Integer, String> {

        private String json;

        @Override
        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub
            // 实例化HttpClient
            HttpClient client = new DefaultHttpClient();
            // 设置请求方式
            HttpGet httpGet = new HttpGet(params[0]);
            try {
                // 请求数据
                HttpResponse execute = client.execute(httpGet);
                // 通过状态行得到状态码
                int statusCode = execute.getStatusLine().getStatusCode();
                // 判断状态码是否是200 是 请求成功
                if (statusCode == 200) {
                    HttpEntity entity = execute.getEntity();
                    // 拿到请求的数据
                    json = EntityUtils.toString(entity);
                }
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return json;
        }
    }

    // 实例化AsyncTask
            MyAsy myAsy = new MyAsy();
            try {
                // 异步交互拿到数据
                String string = myAsy.execute("  ").get();
            } catch (InterruptedException | ExecutionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    Handler handler = new Handler() {
                public void handleMessage(android.os.Message msg) {

                    if (msg.what == 1) {
                        String str = (String) msg.obj;

                    }

                };
            };

            new Thread() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    super.run();

                    HttpClient client = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet("添加网址");
                    try {
                        HttpResponse execute = client.execute(httpGet);

                        int statusCode = execute.getStatusLine().getStatusCode();
                        if (statusCode == 200) {
                            HttpEntity entity = execute.getEntity();
                            String json = EntityUtils.toString(entity);

                            Message msg = Message.obtain();
                            msg.what = 1;
                            msg.obj = json;
                            handler.sendMessage(msg);
                        }

                    } catch (ClientProtocolException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }.start();
           

  • 相关阅读:
    nacos + seata 报错 endpoint format should like ip:port
    Error creating bean with name 'com.example.demo.ProviderFacade': Requested bean is currently in creation: Is there an unresolvable circular reference?
    leetcode 剑指 Offer 65不用加减乘除做加法
    vscode使用spring boot配置详解
    使用springmvc中视图解析器InternalResourceViewResolver遇到访问出错
    docker tomcat修改时区有效方法
    wsl2 docker mysql重启之后无法连接问题
    docker tomcat部署应用并且连接到docker mysql数据库
    vscode git使用
    vscode wsl2使用maven操作{添加包到meavn,测试操作}
  • 原文地址:https://www.cnblogs.com/cuizhe/p/5405615.html
Copyright © 2011-2022 走看看