android中线程的开启,访问网络

来源:互联网 发布:java中异步请求 编辑:程序博客网 时间:2024/05/29 03:23

方式1

    new Thread(runnableDjangoRegister).start();//注册
    public Runnable runnableDjangoRegister = new Runnable() {        @Override        public void run() {            Log.e("runnableDjangoRegister", "runnableDjangoRegister");            // 创建HttpPost对象            HttpPost httpPost = new HttpPost(Register_uri);            List<NameValuePair> params = new ArrayList<NameValuePair>();            params.add(new BasicNameValuePair("phone", phoneNumber));            params.add(new BasicNameValuePair("nickname", nickName));            params.add(new BasicNameValuePair("realname", realName));            //Post返回的数据            HttpResponse httpResponse = null;            String strResult = null;            try {                DefaultHttpClient httpClient = new DefaultHttpClient();                httpPost.setEntity(new UrlEncodedFormEntity(params, encoding));                httpPost.setHeader(new BasicHeader("csrftoken", FanShopApplication.getChatToken()));                httpResponse = httpClient.execute(httpPost);                Log.e("注册请求状态码", String.valueOf(httpResponse.getStatusLine().getStatusCode()));                switch (httpResponse.getStatusLine().getStatusCode()) {                    case 200:                    case 201:                    case 202:                        strResult = EntityUtils.toString(httpResponse.getEntity(), encoding);//encoding,解决乱码的问题                        Log.e("20X返回结果", strResult);                        Looper.prepare();                        Toast.makeText(RegisterActivity.this, strResult, Toast.LENGTH_SHORT).show();                        finishLoginActivity();                        Looper.loop();                        break;                    default:                        Log.e("非20X返回状态码", "非200返回状态码");                        Looper.prepare();                        Toast.makeText(RegisterActivity.this, "请求错误", Toast.LENGTH_SHORT).show();                        Looper.loop();                        break;                }            } catch (IOException e) {                e.printStackTrace();            }        }    };


方式2

  public void getProductBatch() {        DjangoOperation.getJsonByUrl(new Handler() {            @Override            public void handleMessage(Message msg) {                super.handleMessage(msg);                String json = (String) msg.obj;                Log.e("获取批次信息", json);                List<FSProductBatch> productBatchs = JsonUtils.fromJson(json, new TypeToken<List<FSProductBatch>>() {                });                for (FSProductBatch fs : productBatchs) {                    Log.e("getProductBatch", String.valueOf(fs.getProduce_date() + fs.getPosition()));                    goodsBatch.add(fs.getProduce_date() + "\n" + fs.getPosition());                }            }        }, storeGoodsBatch, 1);    }


public static void getJsonByUrl(final Handler mHandler, final String url, final int what) {    new Thread(new Runnable() {        @Override        public void run() {            Log.i("URL:", url);            synchronized (httpClient) {                try {                    HttpGet get = new HttpGet(new URI(url));                    HttpResponse response = httpClient.execute(get);                    Log.i("StatusCode", "" + response.getStatusLine().getStatusCode());                    dealStatusCode(response, mHandler, url, what);                } catch (Exception e) {                    e.printStackTrace();                }            }        }    }).start();}


0 0
原创粉丝点击