2016-10-16 9 views
2

を使用してPOSTリクエスト私はRetrofit2を使用して作成し、次のAPI呼び出し持って行う場合:404レトロフィット

@Headers({"Accept: application/json", "Content-Type: application/json"}) 
@POST("task/create/") 
Call<StandardTaskResponse> createNewTask(@Body Task newTask); 

を、私はそうのようにそのメソッドを使用しよう:

Task newTask = new Task(name, description, "", null, USER, 4, priority, null, null); 

     Call<StandardTaskResponse> call = HavocService.getInstance().getHavocAPI().createNewTask(newTask); 
     call.enqueue(new Callback<StandardTaskResponse>() { 
      @Override 
      public void onResponse(Call<StandardTaskResponse> call, Response<StandardTaskResponse> response) { 
       LogUtil.v("Response message: " + response.message()); 
      } 

      @Override 
      public void onFailure(Call<StandardTaskResponse> call, Throwable t) { 
       LogUtil.e(t.getCause().getMessage()); 
      } 
     }); 

をこれは何のログですshow:

10-16 19:08:07.963 10511-10894/io.havoc.todo D/OkHttp: --> POST http://ec2-amazonaws-base-url-redacted.com:3000/api/task/create/ http/1.1 
10-16 19:08:07.964 10511-10894/io.havoc.todo D/OkHttp: Content-Type: application/json 
10-16 19:08:07.964 10511-10894/io.havoc.todo D/OkHttp: Content-Length: 124 
10-16 19:08:07.964 10511-10894/io.havoc.todo D/OkHttp: Accept: application/json 
10-16 19:08:07.964 10511-10894/io.havoc.todo D/OkHttp: {"category":"","description":"H","indexInList":4,"name":"H","priority":"HIGH","user":"57a7bd24-ddf0-5c24-9091-ba331e486dc7"} 
10-16 19:08:07.964 10511-10894/io.havoc.todo D/OkHttp: --> END POST (124-byte body) 
10-16 19:08:07.969 10511-10516/io.havoc.todo I/art: Do partial code cache collection, code=23KB, data=29KB 
10-16 19:08:07.969 10511-10516/io.havoc.todo I/art: After code cache collection, code=23KB, data=29KB 
10-16 19:08:07.969 10511-10516/io.havoc.todo I/art: Increasing code cache capacity to 128KB 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: <-- 404 Not Found http://ec2-amazonaws-base-url-redacted.com:3000/api/task/create/ (34ms) 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: content-type: application/json; charset=utf-8 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: cache-control: no-cache 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: vary: accept-encoding 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: Date: Sun, 16 Oct 2016 23:07:59 GMT 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: Connection: keep-alive 
10-16 19:08:07.999 10511-10894/io.havoc.todo D/OkHttp: Transfer-Encoding: chunked 
10-16 19:08:08.020 10511-10894/io.havoc.todo D/OkHttp: {"statusCode":404,"error":"Not Found"} 
10-16 19:08:08.020 10511-10894/io.havoc.todo D/OkHttp: <-- END HTTP (38-byte body) 
10-16 19:08:08.050 10511-10511/io.havoc.todo V/(NewTaskActivityPresenter.java:40): Response message: Not Found 

私は他のStackOverflowの回答を検索し、一般的な疑わしいものはベースURLです。私のようにアクセスされる:

private static final String HAVOC_URI = "http://ec2-amazonaws-base-url-redacted.com:3000/api/";

このAPI呼び出しの本文は、私が作成したいTaskであると想定されています。ただ

を作成しましたdoc:タスクは、私がなぜこの見当もつかない、バックエンドでエラーがあったかどうか:

{ 
    "status":true, 
    "doc":{ 
     "_id":"5801175bc5c3f451301fd235", 
     "t_id":"8671fc295bc9", 
     "name":"Do calculus homework", 
     "description":"Finish all assigned homework from chapters 1 and 2", 
     "category":"test", 
     "indexInList":0, 
     "priority":3, 
     "dateDue":1477291500000, 
     "user":"57a", 
     "status":"ARCHIVED", 
     "__v":0, 
     "subtasks":[ 
      { 
       "name":"Finish Chapter 1 - Derivatives", 
       "isCompleted":false 
      }, 
      { 
       "name":"Finish Chapter 1 - Integrals", 
       "isCompleted":false 
      }, 
      { 
       "name":"Finish Chapter 2 - Graphing", 
       "isCompleted":false 
      } 
     ] 
    } 
} 

です::status応答は、フォームのようなものであると考えられます起こっている。私はベースURLが正しいと確信しています。私は実際にREST API test app from the Play Storeを使用し、空のボディでPOSTリクエストを行い、応答は正しいです。 Androidでこれを試みたときだけ、このエラーが発生します。

何かすべてのヘルプに感謝します。

答えて

0

私はばかです。 @POSTパラメータの最後のバックスラッシュを削除する必要がありました。

@Headers({"Accept: application/json", "Content-Type: application/json"}) 
@POST("task/create") 
Call<StandardTaskResponse> createNewTask(@Body Task newTask); 
関連する問題