自己写的HttpManager OkHttp

compile ‘com.squareup.okhttp3:okhttp:3.5.0’

import android.content.Context;
import android.support.v7.app.AlertDialog;
import android.util.Log;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

/**
* Created by sunzl on 16/12/28.
*/
interface CompleteHttp{
void complete(JSONObject obj);
}
public class HttpManager {

static public void  post(String  url, final Context context, final CompleteHttp completeHttp){
    //创建okHttpClient对象
    OkHttpClient mOkHttpClient = new OkHttpClient();
    //创建一个Request
    final Request request = new Request.Builder()
            .url(url)
            .build();
    //new call
    Call call = mOkHttpClient.newCall(request);
    //请求加入调度
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            Log.e("M",e.getMessage());
            App.getHandler().post( new Runnable()
            {
                @Override
                public void run()
                {
                    new MyDialog.Builder(context).setTitle("友情提示").setMessage("网络异常")
                            .setPositiveButton("确定", null)
                            .show();

                }

            });
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            String str = response.body().string();
            Log.e("1",str);
            try {
                final JSONObject obj = new JSONObject(str);
                if (obj.getInt("code") == 1) {
                    App.getHandler().post(new Runnable() {
                        @Override
                        public void run() {

                            try {
                                completeHttp.complete(obj.getJSONObject("data"));
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    });

                }else {

                    App.getHandler().post(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                new MyDialog.Builder(context).setTitle("友情提示").setMessage(obj.getString("msg"))
                                        .setPositiveButton("确定", null)
                                        .show();
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }

                        }

                    });
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }



        }
    });


}

}

在 android:name=”.App”

import android.app.Application;
import android.os.Handler;
import android.util.Log;

/**
* Created by sunzl on 16/12/28.
*/

public class App extends Application{

private static Handler handler;

public static Handler getHandler() {
    return handler;
}


@Override
public void onCreate() {
    super.onCreate();
    Log.e("s","app");
    handler = new Handler();
}

}

自定一个可以在前面显示的dialog
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

/**
* Created by sunzl on 16/12/28.
*/

public class MyDialog extends AlertDialog {
private TextView text;
public MyDialog(Context context) {
super(context);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Window window = getWindow();
    window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值