package com.mcxtzhang.rxjavademo.network;
import com.google.gson.Gson;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.io.IOException;
import rx.Observable;
import rx.Subscriber;
/**
* 介绍:使用okhttp访问网络
* 作者:zhangxutong
* 邮箱:mcxtzhang@163.com
* 主页:http://blog.csdn.net/zxt0601
* 时间: 2016/12/2.
*/
public class Add2GankUtils {
public final String POST_URL = "https://gank.io/api/add2gank";
public static final String CREATE_CLASS_URL = "http://relation.imcoming.com.cn/v1/school/grade/create?appid=1&token=0a46e99862386f369806b373924b2ccf&appver=3.1.0&appplt=aph";
private OkHttpClient mOkHttpClient;
public Add2GankUtils() {
mOkHttpClient = new OkHttpClient();
}
/* public Observable<String> login(String userName, String pwd) {
}*/
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public Observable<String> add2Gank(Add2GankBean add2GankBean) {
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
if (!subscriber.isUnsubscribed()) {
FormEncodingBuilder builder = new FormEncodingBuilder();
builder.add("url", add2GankBean.getUrl());
builder.add("desc", add2GankBean.getDesc());
builder.add("who", add2GankBean.getWho());
builder.add("type", add2GankBean.getType());
builder.add("debug", "true");
RequestBody body = RequestBody.create(JSON, new Gson().toJson(new TestAlyCreateClassBean()));
Request request = new Request.Builder()
.url(CREATE_CLASS_URL)
.post(/*builder.build()*/body )
.build();
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
subscriber.onError(e);
}
@Override
public void onResponse(Response response) throws IOException {
if (response.isSuccessful()) {
subscriber.onNext(response.body().string());
subscriber.onCompleted();
} else {
subscriber.onError(new Exception(response.message()));
}
}
});
}
}
});
}
}