1.http post请求:
(1)需要导入架包okhttp-2.7.5.jar 和 okio-1.11.0.jar
(2)初始化化如下:
private static final String POST_URL = "http://www.baidu.com";
public static int postHttpRequest(Context context,Callback callback) {
mContext = context;
int responseCode = -1;
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setReadTimeout(3*60, TimeUnit.SECONDS);
okHttpClient.setConnectTimeout(3*60, TimeUnit.SECONDS);
okHttpClient.setWriteTimeout(3*60, TimeUnit.SECONDS);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json;
charset=utf-8"), createRequestParam());
//createRequestParam()为创建请求参数
Request request = new Request.Builder().url(POST_URL).post(requestBody).build();
okHttpClient.newCall(request).enqueue(callback);
return responseCode;
}
(3)接收回调,OkHttpClient发完请求后回通过Callback回调到函数onResponse或者onFailure进行结果的处理。
Callback callback = new Callback() {
@Override
public void onResponse(Response response) throws IOException {
log.d("doAIRequest==response==" + response.isSuccessful() + " httpcode==" + response.code());
if (response.isSuccessful()) {
String json = response.body().source().readUtf8();
try {
JSONObject jsonObject = new JSONObject(json);
int code = jsonObject.optInt("code");
log.d("doAIRequest==response==code==" + code + ",refreshStateTime==" + refreshStateTime);
SWApplication.INSTANCE.setmIsAuthSuc(true);
handleResult(code);
refreshStateTime ++;
} catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(Request arg0, IOException arg1) {
log.d("doAIRequest==fail");
}
};