Fast and easy RESTful api request for android that parse response by gson and it using: OkHttp and RxJava-RxAndroid and Gson
add EasyOkHttp to dependencies :
implementation 'github.mehrdadf7:okhttp:1.1.7'
Don't forget Connect your phone to internet :) and notice jcenter() is added :
repositories {
jcenter()
}
<uses-permission android:name="android.permission.INTERNET" />
OkHttpInjector.getHttpClient().makeRequest(
HttpRequest.Method method, //GET, POST
String url,
String requestBody, //JsonObject requestBody
Class<T> responseType //ClassModel.class
).send().observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.newThread())
.subscribe(new Observer<T>() {
@Override
public void onSubscribe(Disposable d) {
// pre-request
}
@Override
public void onNext(T t) {
//response(t)
}
@Override
public void onError(Throwable e) {
//handle error
}
@Override
public void onComplete() {
//complete-request
}
});
// Observer<T> and Observable<T> in 'io.reactivex' package name
public void requestName(Observer<ClassModel> observer) {
OkHttpInjector.getHttpClient().makeRequest(
HttpRequest.Method.GET, //HttpRequest.Method.POST
url,
"", //jsonObject
ClassModel.class
).send().observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.newThread())
.subscribe(observer);
}
fun requestName(observer: Observer<ClassModel>) {
OkHttpInjector.getHttpClient()?.makeRequest(
HttpRequest.Method.GET, //HttpRequest.Method.POST
url,
"", //jsonObject
ClassModel::class.java
)?.send()?.observeOn(AndroidSchedulers.mainThread())?.subscribeOn(Schedulers.newThread())
?.subscribe(observer)
}