自己写的HttpManager OkHttp

来源:互联网 发布:阿里云服务器架设网站 编辑:程序博客网 时间:2024/06/15 02:53

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;}@Overridepublic 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);
}

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

}

0 0
原创粉丝点击