2017-02-15 22 views
0

В Retrofit 2 Я могу использовать аннотации в сервисах для определения того, какой метод HTTP нужно использовать. Например:Retrofit 2 добавить поддержку пользовательских/других методов запроса (HTTP-глаголов)

public interface UserService { 

    @GET("users") 
    Call<UsersResponse> getAllUsers(@Header("access-token") String token) 

    @POST("user") 
    Call<UserResponse> postUser(@Header("access-token") String token, @Body User user) 

} 

Я считаю, это очень удобно, но я пропускаю некоторые методы запроса HTTP (глаголы), как и отключить связь. Возможно ли каким-то образом продлить срок службы Retrofit, чтобы создать поддержку дополнительных методов?

ответ

4

Это возможно при использовании HTTP-аннотацию:

public interface AccountService { 

    @HTTP(method = "LINK", path = "users", hasBody = true) 
    Call<BaseResponse> linkUsers(@Header("access-token") String token, @Body LinkUsersRequest linkUsersRequest); 

} 

Вы также можете использовать HTTP-аннотацию, чтобы создать УДАЛИТЬ запрос с телом запроса

+0

Здравствуйте Барта, мой код не работает его всегда говорит Пользовательский метод AUTH, не должен иметь тело @Headers («Content-Type: application/json») @HTTP (method = "AUTH", path = "login/{deviceId}", hasBody = true) Звонок getLogin ( @Pa th ("deviceId") int deviceId, @Body RequestBody пароль); Я использую retrofit 2.X –