自己写的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);}
}
- 自己写的HttpManager OkHttp
- Android架构系列-封装自己的okhttp
- 自己手动封装的OKHTTP类
- 一起来写OKHttp的拦截器
- 写自己的rss
- 写自己的rss
- 自己写的sqlhelper
- 自己写的strcmp
- 自己写的一首诗
- 写自己的软件
- 写自己的rss
- 写个自己的
- 自己写的采集
- 写自己的rss
- 自己写的Excel
- 给自己写的
- 自己写的计算器
- 自己写的诗一首
- java学习笔记之一《初始化清理》
- 数据结构课程设计--图书管理系统
- Android版本判断
- lucene(3)——版本5.X写中文同义词分词器
- Maven的安装及配置
- 自己写的HttpManager OkHttp
- 精通 CSS+DIV 网页样式与布局 153
- HBASE内存泄露读文件失败的问题
- webService教程--深入webservice和发布webservice
- 蓝牙解析(part5):BLE的广播通信
- Bootstrap3 表单-水平排列的表单组的尺寸
- 精通 CSS+DIV 网页样式与布局 154
- 关于myrect.origin=mypoint中调用setOrigin的问题
- Mybatis报错Could not find parameter map java.util.Map