Невозможно получить ответ, используя модификацию в Android - PullRequest
0 голосов
/ 04 сентября 2018

https://api.tj.com/orderNumber/order

Запросить Paremeter:

Header 
Authorization: Beer naskjnkjnsadsad
Content-Type:application/json

Body json:

{
  "orderRequestId" : "890329jnfndlsd",
  "stateOfOldOrder" : "NotComplted"
}

Ответ:

raw response : HTTP/1.1 204 No Content
Date: Fri, 31 Aug 2018 09:39:47 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 0
ID: jhdsahjksa219212
Connection: keep-alive

ответ должен прийти в шапке Это мой исключительный вывод, который отлично работает в Почтальоне

но при использовании модернизации я пытаюсь этот код

@POST("orderNumber/order") 
Observable<ResponseBody> requestOrderCard(@Body OrderRequest request);

и звонит так:

orderService.requestOrderCard(request)
                .subscribeOn(Schedulers.io())
                .observeOn(Schedulers.computation())
                .map(voidResponse -> {
                    Log.d("RESPONSEsss","vodiresponse");
                    return voidResponse;
                })

                .subscribe(voidResponse -> {
                            Log.d("RESPONSEsss","vodiresponse");
                        },
                        error -> {
                            Log.d("ERRRROOOR","Error");
                        });

Но каждый раз, когда я получаю сообщение об ошибке, подскажите, пожалуйста, как получить ответ, когда нет метода «Только заголовок содержимого» в методе Post при модернизации в Android.

1 Ответ

0 голосов
/ 04 сентября 2018

использовать один вместо наблюдаемого

@POST("orderNumber/order")
Single<Response<OBJECT>>  requestOrderCard(@Body OrderRequest)

восстановить, получить, как это

listSingle.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new SingleObserver<Response<OBJECT>>() {
                        @Override
                        public void onSubscribe(Disposable d) {

                        }

                        @Override
                        public void onSuccess(Response<OBJECT> objectdto) {
                            if (objectdto.code() == 200 && objectdto.body() != null) {
                                getMvpView().sucess(objectdto.body());
                            } else if (objectdto.errorBody() != null) {
                                getMvpView().setErrorMessage(objectdto.errorBody());
                            } 
                        }

                        @Override
                        public void onError(Throwable e) {
                            getMvpView().setErrorMessage("Something went Wrong");
                        }
                    });

И ваш объект будет

OBJECT.java

private class OBJECT{
{
  private String orderRequestId;
  private String stateOfOldOrder;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...