in src/main/java/com/spotify/ffwd/http/RawHttpClient.java [83:109]
private Observable<Void> execute(final Request.Builder request) {
//TODO: handle unsubscribe and cancel the request if that happens.
return Observable.unsafeCreate(new Observable.OnSubscribe<Void>() {
public void call(final Subscriber<? super Void> subscriber) {
final Call call = httpClient.newCall(request.build());
call.enqueue(new Callback() {
public void onFailure(final Call call, final IOException e) {
subscriber.onError(e);
}
public void onResponse(final Call call, final Response response)
throws IOException {
if (response.isSuccessful()) {
subscriber.onCompleted();
} else {
subscriber.onError(new RuntimeException(
"HTTP request failed: " + response.code() + ": "
+ response.message()));
}
response.close();
}
});
}
});
}