2017-03-27 68 views
0

我正在呼籲這樣的服務器:改造400錯誤

public void startModelFor(final AnotherModel anotherModel) { 
    if (selectedConsumer == null) { 
     getView().showNoConsumerError(); 
    } else { 
     getView().setLoading(); 
     mApi.createModel(mManager.load(), selectedConsumer, ORDER_TYPE_TO_GO) 
       .subscribeOn(Schedulers.newThread()) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribe(new Observer<MyModel>() { 
        @Override 
        public void onCompleted() { 

        } 

        @Override 
        public void onError(Throwable e) { 
         String str = e.getMessage(); 
         Log.e("ERROR", "MESSSAGE: "+e.getMessage()); 
         StringWriter writer = new StringWriter(); 
         PrintWriter printWriter = new PrintWriter(writer); 
         e.printStackTrace(printWriter); 
         printWriter.flush(); 

         String stackTrace = writer.toString(); 

         //getView().showErrorOnCreateOrder(); 
        } 

        @Override 
        public void onNext(MyModel model) { 
         getView().goToOrderMenu(anotherModel, model); 
        } 
       }); 
    } 
} 

只是爲了填充爲MyModel對象。每次發出請求時,我都會收到400錯誤消息。 MyModel對象的結構沒有改變,即方法的任何字段都沒有添加到類中。 被調用的createModel方法是一個PUT調用。 以下是錯誤的堆棧跟蹤。

retrofit.RetrofitError: 400 Bad Request 
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:388) 
at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220) 
at retrofit.RestAdapter$RestHandler$1.invoke(RestAdapter.java:265) 
at retrofit.RxSupport$2.run(RxSupport.java:55) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at retrofit.Platform$Android$2$1.run(Platform.java:142) 
at java.lang.Thread.run(Thread.java:841) 

我無法得知正在發生什麼。我不知道這是否發生,因爲服務器上的數據模型是錯誤的,這發生在我身邊(客戶端)。

+1

檢查您的請求,嘗試通過終端和捲曲進行請求。 – shmakova

+0

@shmakova你能給我一個樣本嗎?我是這個主題的新手。 – learner

回答

-1

嘗試使用Postman app來測試您對服務器的HTTP請求,並確保您的請求是正確的,並且您得到正確的響應。 由於您沒有提供期望的HTTP請求模型(API文檔),因此很難判斷您的錯誤在哪裏。