Android how to handle retrofit response when Content-Type = application/octet-stream?

Viewed 5127

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
1 Answers
Related