1.Okhttp工具類
package bw.com.lxi;
import com.google.gson.Gson;
import java.util.concurrent.TimeUnit;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
public class OkHttP {
private static final Gson gson = new Gson();
private static OkHttpClient client;
private static final String METHOD_GET=“GET”;
private static final String METHOD_POST=“POST”;
private static final String MEDIA_TYPE=“application/json;charset=utf-8”;
private OkHttP(){};
public static void init(){
client = new OkHttpClient.Builder()
.connectTimeout(3000,TimeUnit.MILLISECONDS)
.writeTimeout(3000,TimeUnit.MILLISECONDS)
.readTimeout(3000,TimeUnit.MILLISECONDS)
.build();
}
private static Request createRequest(String url,String method,BaseRequest baseRequest){
RequestBody requestBody = null;
if (baseRequest!=null){
String s = gson.toJson(baseRequest);
MediaType mediaType = MediaType.parse(MEDIA_TYPE);
requestBody = RequestBody.create(mediaType,s);
}
Request request = null;
Request.Builder builder = new Request.Builder().url(url);
switch (method){
case METHOD_GET:
request=builder.get().build();
break;
case METHOD_POST:
request=builder.put(requestBody).build();
break;
}
return request;
}
//創建Request對象
public static void createget(String url, Callback callback){
Request request = createRequest(url,METHOD_GET,null);
Call call = client.newCall(request);
call.enqueue(callback);
}
public static void createPost(String url,BaseRequest baseRequest,Callback callback){
Request request = createRequest(url,METHOD_POST,baseRequest);
Call call = client.newCall(request);
call.enqueue(callback);
}
}
2.BaseRequest類
public class BaseRequest implements Serializable {
}
3.初始化init方法
package bw.com.lxi;
import android.app.Application;
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
OkHttP.init();
}
}
4.使用
package bw.com.lxi;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class MainActivity extends AppCompatActivity {
private String path=“http://www.xieast.com/api/news/news.php\n”;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.dianji).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttP.createget(path, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
Bean bean = gson.fromJson(string, Bean.class);
List<Bean.DataBean> data = bean.getData();
Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_SHORT).show();
}
});
}
});
}
});
}
}