学习OkHttp
public class OkHttpUtils {
private static OkHttpClient okHttpClient = new OkHttpClient();
/**
* 异步get请求方法
*
* @param context
* @param url
* @param asyncCallback
*/
public static void asyncGetHttp(final Context context, String url,
Callback asyncCallback) {
Request request = new Request.Builder().url(url).build();
Call call = okHttpClient.newCall(request);
call.enqueue(asyncCallback);
}
/**
* 同步get请求 不能直接在Main Thread类中进行网络请求,会阻塞UI、用户体验相当不好
* 需要另一个Thread,而后把数据存到message里,用handler传递数据,显示UI上
* @param context
* @param url
* @param handler
* @param msgcode
*/
public static void syncGetHttp(Context context, final String url,
final Handler handler, final int msgcode) {
new Thread() {
public void run() {
try {
Request request = new Request.Builder().url(url).build();
Response response = okHttpClient.newCall(request).execute();
if (!response.isSuccessful())
throw new IOException("Unexpected code " + response);
Message message = new Message();
message.what = msgcode;
message.obj = (Object)response.body().string();
System.out.println("---respone--1-" + response.body().string());
handler.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}