OKHttp 同步请求

一般在UI线程(主线程)中调用网络请求不可取,但有时候也会用到,比如更新UI(应该还有更好的解决办法) 

此篇仅以记录 OKHttp 同步请求:

private Handler requestHandler_post = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case 1:
		Toast.makeText(Mine1Activity.this, "Successful", Toast.LENGTH_SHORT).show();
break;  
	    case 0:
		Toast.makeText(Mine1Activity.this, "Fail", Toast.LENGTH_SHORT).show();
break;  
	    default:                
		super.handleMessage(msg);        
	}    
    }};

new Thread(new Runnable() {
    @Override
    public void run() {
    	Message msg = requestHandler_post.obtainMessage();
		try {
        		OkHttpClient client = new OkHttpClient();
        		Request request = new Request.Builder()
        			.url(Url)  //Url为要请求的网络连接
        			.build();

        		Response response = client.newCall(request).execute();

        		if (!response.isSuccessful()) {
        			msg.what = 0;
       			 } else {
        			JSONObject jsonObject = new JSONObject(response.body().string());
        			String jsondata = jsonObject.getString("json");
        			Log.i("retpost",jsondata);
       				 //这里获得的返回数据可以在主线程中做进一步使用
        			msg.what = 1;
        		}
        	} catch (Exception ex) {
        		msg.what = 0;
       	        } finally {
        		msg.sendToTarget();
        	}
} }).start();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值