Я следующий вызов API я создал с помощью Retrofit2:404 При выполнении запроса POST с помощью Дооснащение
@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());
}
});
Это то, что журналы шоу:
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
Я хочу создать. Ответ должен быть чем-то вроде формы:
{
"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
: действительно ли произошла ошибка на внутреннем интерфейсе, doc:
задача, которая была только что создали
Я понятия не имею, почему это это происходит. Я уверен, что базовый URL-адрес правильный. Я действительно могу использовать REST API test app from the Play Store и выполнить запрос POST с пустым телом, и ответ правильный. Только когда я пытаюсь сделать это на Android, я получаю эту ошибку.
Буду признателен за любую помощь.