2016-06-29 3 views
0

Я пытаюсь сделать вызов API на мобильный сервер с Retrofit 2.0. В моем API вызова, я должен сделать необходимый вызов этого URLРедактирование запроса аннотации без амперсанда

https://api.backendless.com/v1/data/Users?where=followings.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27

Чтобы сформировать этот URL в Модернизированном я использую ниже интерфейс

@GET("Users?where=") 
Call<List<User>> getFollowers(@Query("followings.objectId") String objectId); 

Этого интерфейс ставит вызовы амперсанд перед параметрами запроса и генерирует URL-адрес, такой как ниже

https://api.backendless.com/v1/data/Users?where=&followings.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27

Я попытался преодолеть это с помощью аннотации Path, но я продолжаю получать строку запроса URL, которая не должна содержать блок замены. Для динамических параметров запроса с использованием ошибки @Query.

API, который я пытаюсь подключить, требует условия «where =» для фильтрации по дизайну. У меня нет разрешения на изменение. Что мне нужно - это как-то сказать «Дооснащение» положить знак амперсанд перед параметром запроса или обхода этой проблемы.

Любая помощь приветствуется.

ответ

0

@GET («{путь}») вызовов> getFollowers (@Path («путь») путь , @Query ("followings.objectId") String objectId);

getFollowers ("Users? Where =", ...)

+0

Ваше предложенное решение, к сожалению, дает мне другой URL https://api.backendless.com/v1/data/Users%3Fwhere=?follow.objectId=%270B3BA7F9-260F-B378-FF9A-3C2448B8A700%27 Это потому, что знак вопроса право r «Пользователи» становятся закодированными по URL. Я пробовал encoded = true в аннотации пути, но он все равно переводит его в кодированный URL – Kemal

0

Для тех, кто ищет подобных ответов, я придумал ниже раствором

я объявил мой интерфейс с @url

@GET 
Call<List<User>> getFollowers(@Url String objectId); 

и генерируется соответствующий URL-части в качестве метода расширения

public String toFollowerRequest(){ 
    return RestGlobals.BASE_URL + "Users?where=followings.objectId=%27" + objectId + "%27"; 
} 
Смежные вопросы