net
HttpServie
public interface HttpServie {
@Multipart
@POST
Observable upLoad(@Url String url,
@HeaderMap Map<String, String> map,
@Part MultipartBody.Part part);
}
HttpUtils
public class HttpUtils {
private Map<String, String> headMap = new HashMap<>();
public HttpUtils setHead(Map<String, String> headMap) {
this.headMap = headMap;
return this;
}
public HttpUtils upload(String url, File file) {
Retrofit retrofit = new Retrofit.Builder().baseUrl("http://172.17.8.100")
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
HttpServie service = retrofit.create(HttpServie.class);
MediaType mediaType = MediaType.parse("multipart/form-data;charset=UTF-8");
RequestBody body = RequestBody.create(mediaType, file);
MultipartBody.Part part = MultipartBody.Part.createFormData("image", file.getName(), body);
Observable<ResponseBody> ob = service.upLoad(url, headMap, part);
ob.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
mHttpListener.success(responseBody.string());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
mHttpListener.fail(e.getMessage());
}
@Override
public void onComplete() {
}
});
return this;
}
private HttpListener mHttpListener;
public void result(HttpListener mHttpListener) {
this.mHttpListener = mHttpListener;
}
public interface HttpListener {
void success(String data);
void fail(String error);
}
}
OkHttp
public class OkHttp {
private Context context;
private Map<String,String> map=new HashMap<>();
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==1000){
String obj =(String)msg.obj;
httpListener.success(obj);
}else{
String obj =(String)msg.obj;
httpListener.faile(obj);
}
}
};
public OkHttp setheade(Map<String,String> headermap){
this.map=headermap;
return this;
}
private HttpListener httpListener;
public OkHttp get(String url){
gethttp(url,0,null);
return this;
}
public OkHttp post(String url, FormBody.Builder bobybuilder){
gethttp(url,1,bobybuilder);
return this;
}
public OkHttp put(String url, FormBody.Builder bobybuilder){
gethttp(url,2,bobybuilder);
return this;
}
public OkHttp del(String url, FormBody.Builder bobybuilder){
gethttp(url,3,bobybuilder);
return this;
}
public void gethttp(String url,int type,FormBody.Builder bobybuilder){
OkHttpClient okHttpClient=new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Log.i("aaaa",request.url().host());
return chain.proceed(request);
}
}).build();
Request.Builder builder=new Request.Builder();
if (type==0){
builder.get();
}else if (type==1){
builder.post(bobybuilder.build());
}else if (type==2){
builder.put(bobybuilder.build());
}else if (type==3){
builder.delete(bobybuilder.build());
}
Set<Map.Entry<String, String>> entries = map.entrySet();
for (Map.Entry<String, String> head : entries){
String key = head.getKey();
String value = head.getValue();
builder.addHeader(key,value);
}
Log.i(“adaaaaaaaad”,map.toString());
builder.url(url);
Request request=builder.build();
final Message message=new Message();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
message.obj=e.getMessage();
message.what=1001;
handler.sendMessage(message);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
message.what=1000;
message.obj=response.body().string();
handler.sendMessage(message);
}
});
}
public void request(HttpListener httpListener){
this.httpListener =httpListener;
}
public interface HttpListener{
void success(String data);
void faile(String error);
}
}
ViewPager内部类
public class MainActivity extends AppCompatActivity {
private RadioGroup radio;
private RadioButton shou;
private RadioButton zhangdan;
private ViewPager viewpager;
private List<Fragment> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
radio = findViewById(R.id.radio_view);
viewpager = findViewById(R.id.viewpager);
list = new ArrayList<>();
list.add(new ShouFragment());
list.add(new QuanFragment());
list.add(new CarFragment());
list.add(new ZhangFragment());
list.add(new MeFragment());
viewpager.setAdapter(new Adapter(getSupportFragmentManager()));
viewpager.setOffscreenPageLimit(5);
//点击事件
viewpager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.shou:
viewpager.setCurrentItem(0,false);
break;
case R.id.quanzi:
viewpager.setCurrentItem(1,false);
break;
case R.id.car:
viewpager.setCurrentItem(2,false);
break;
case R.id.zhangdan:
viewpager.setCurrentItem(3,false);
break;
case R.id.me:
viewpager.setCurrentItem(4,false);
break;
}
}
});
}
private class Adapter extends FragmentPagerAdapter {
public Adapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
}
}