|
@@ -6,7 +6,9 @@ import okhttp3.OkHttpClient
|
|
|
import okhttp3.Request
|
|
|
import okhttp3.Response
|
|
|
import rx.Observable
|
|
|
+import rx.subscriptions.Subscriptions
|
|
|
import java.io.File
|
|
|
+import java.io.IOException
|
|
|
|
|
|
class NetworkHelper(context: Context) {
|
|
|
|
|
@@ -39,14 +41,22 @@ class NetworkHelper(context: Context) {
|
|
|
get() = cookieManager.store
|
|
|
|
|
|
fun request(request: Request, client: OkHttpClient = defaultClient): Observable<Response> {
|
|
|
- return Observable.fromCallable {
|
|
|
- client.newCall(request).execute()
|
|
|
- }
|
|
|
- }
|
|
|
+ return Observable.create { subscriber ->
|
|
|
+ val call = client.newCall(request)
|
|
|
+ subscriber.add(Subscriptions.create { call.cancel() })
|
|
|
|
|
|
- fun requestBody(request: Request, client: OkHttpClient = defaultClient): Observable<String> {
|
|
|
- return Observable.fromCallable {
|
|
|
- client.newCall(request).execute().body().string()
|
|
|
+ try {
|
|
|
+ val response = call.execute()
|
|
|
+ if (!subscriber.isUnsubscribed) {
|
|
|
+ subscriber.add(Subscriptions.create { response.body().close() })
|
|
|
+ subscriber.onNext(response)
|
|
|
+ subscriber.onCompleted()
|
|
|
+ }
|
|
|
+ } catch (error: IOException) {
|
|
|
+ if (!subscriber.isUnsubscribed) {
|
|
|
+ subscriber.onError(error)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|