Как передать строку URL при использовании Retrofit в Kotlin - PullRequest
0 голосов
/ 28 октября 2018

У меня есть класс A, который содержит переменную.Мне нужно передать переменную в файле интерфейса класса B, чтобы я мог получить динамический вывод в Kotlin.Если это постоянная строка, то я могу получить результат, но я не уверен, как изменить значение на лету.Я использовал этот код ниже для моего теста, но это статическое значение JSON.

Class:A
        val intent= Intent(customView.context,ApiMovies::class.java)
        intent.putExtra(MOVIES_TITLE_KEY,Movies?.name)
Class:B
interface ApiMovies {
//   val name= intent.getStringExtra(MOVIES_TITLE_KEY,Movies?.name)

    @GET("get_movie.php?name=DunKirk")
    fun getMovies() : Observable<MovieResponse>
}

Class:C
        val retrofit : Retrofit = Retrofit.Builder()
                    .baseUrl("https://www.imdb.com")

Class:D
class MovieResponse {

    lateinit var data : List<Movie>
}

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Я изменил свой код, как показано ниже.

Class:A
        val intent= Intent(customView.context,ApiMovies::class.java)
        intent.putExtra(MOVIES_TITLE_KEY,Movies?.name)

 apiMovies.getMovies($intent)
Class:B
interface ApiMovies {

    @GET("get_movie.php")
    fun getMovies(@Query("name") name:String) : Observable<MovieResponse>
}

Class:C
        val retrofit : Retrofit = Retrofit.Builder()
                    .baseUrl("https://www.imdb.com")

Class:D
class MovieResponse {

    lateinit var data : List<Movie>
}
0 голосов
/ 28 октября 2018

Я думаю, что вы можете добавить параметры для метода вашего classB

Class:B interface ApiMovies { 
@GET("get_movie.php")
 fun getMovies(@QueryMap() Map<String, String> info) : Observable<MovieResponse>
 }

перед вызовом вашего метода, создать карту, добавить k & v в карту (map.add ("name", xxx)), вызватьэто как getMovies (map), это будет нормально, вам не нужно передавать вашу переменную в classB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...