本文主要是介绍自己写的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();//创建一个Requestfinal Request request = new Request.Builder().url(url).build();//new callCall call = mOkHttpClient.newCall(request);//请求加入调度call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.e("M",e.getMessage());App.getHandler().post( new Runnable(){@Overridepublic void run(){new MyDialog.Builder(context).setTitle("友情提示").setMessage("网络异常").setPositiveButton("确定", null).show();}});}@Overridepublic 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() {@Overridepublic void run() {try {completeHttp.complete(obj.getJSONObject("data"));} catch (JSONException e) {e.printStackTrace();}}});}else {App.getHandler().post(new Runnable() {@Overridepublic 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);}
}
这篇关于自己写的HttpManager OkHttp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!