retrofit request interface:
public interface IDataService {
// Request URL: https://demo.testdata.com/getData/order?timeStamp=1491986181670&callerId=android_platform
// Request Method: GET
// Response Content-Type: application/octet-stream
@GET("https://demo.testdata.com/getData/" + "{type}")
Observable<Response> getTestData(@Path(value = "type", encode = false) String type
, @Query("callerId") String callerId, @Query("timeStamp") long timeStamp);
}
Use the retrofit request interface:
In TestActivity.java
public Observable<String> getTestData(IDataService dataService) {
final BehaviorSubject<String> subject = BehaviorSubject.create();
if (null == dataService) {
subject.onError(new NullPointerException());
return subject;
}
bindObservable(dataService.getTestData("order", "android_platform", new Date().getTime())).subscribeOn(Schedulers.io())
.subscribe(new Subscriber<Response>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
subject.onError(e);
}
@Override
public void onNext(retrofit.client.Response response) {
// TODO: how to handle the response body content?
// In general, response is json string. Then parse and convert json string to Object.
// Now Response Content-Type = application/octet-stream, How to handle it?
}
});
return subject.asObservable();
}
Question: In general, response Content-Type=application/json, parse JSON string to Object. Now,Response Content-Type = application/octet-stream, How to handle it?
Ref:
- com.squareup.retrofit:retrofit:1.9.0
- io.reactivex:rxjava:1.1.0
- io.reactivex:rxandroid:1.1.0