Retrofit error URL query string must not have replace block

313
15 июня 2017, 04:51

Делаю такой запрос

@GET("v2/search?lang=en&portal="+PORTAL_ID+"&type=course&query={query}&start=0") Call getSearchResult(@Path("query") String query);

выдает ошибку что Retrofit error URL query string must not have replace block. Я и @Path и @Query пробовал. все равно эту ошибку выдает. Я хочу заменить {query} на полученную переменную

В чем ошибка?

Answer 1

Аннотация @Path предназначена для параметров функции, которые заменяют часть пути URL https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Path.html

Named replacement in a URL path segment. Values are converted to strings using Retrofit.stringConverter(Type, Annotation[]) (or Object.toString(), if no matching string converter is installed) and then URL encoded. Simple example:

@GET("/image/{id}") Call example(@Path("id") int id);

Calling with foo.example(1) yields /image/1.

В вашем случае query - это параметр запроса, а не часть пути, поэтому для него нужно использовать аннотацию @Query https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Query.html

Query parameter appended to the URL. Values are converted to strings using Retrofit.stringConverter(Type, Annotation[]) (or Object.toString(), if no matching string converter is installed) and then URL encoded. null values are ignored. Passing a List or array will result in a query parameter for each non-null item.

Simple Example:

@GET("/friends") Call friends(@Query("page") int page);

Calling with foo.friends(1) yields /friends?page=1.

А из @GET(...) query нужно убрать

@GET("v2/search?lang=en&portal="+PORTAL_ID+"&type=course&start=0")
Call getSearchResult(@Query("query") String query);
READ ALSO
Jpql двойной запрос

Jpql двойной запрос

Требуется написать запрос, в котором мы получим все Calculate по условию поля state = true, при этом, чтобы связанный список Client был взят тоже по условию...

278
Сортировка по алфавитному порядку в HQL Hibernate

Сортировка по алфавитному порядку в HQL Hibernate

Не подскажете как сделать сортировку в hql на русском языке?

305
Подружить Fragment и AppCompatActivity

Подружить Fragment и AppCompatActivity

Есть необходимость унаследовать класс одновременно от Fragment и AppCompatActivityДело в том, что активность должна быть фрагментом, а AppCompatActivity мне...

302
Как убрать панель навигации Android 5.0+

Как убрать панель навигации Android 5.0+

Работаю с приложением-киоском на Android 51

379