Вы должны добавить следующие строки в свой код:
Первый шаг: Добавить новый CallAdapter RxJavaCallAdapterFactory.create () при создании экземпляра Retrofit.
public static final String BASE_URL = "http://google.com/";
public static Retrofit getClient(String baseUrl) {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
Следующий шаг: Обновите APIService , например: -> savePost (String title, String body, String userId) методстать наблюдаемым.
public interface APIService {
@GET
Call<ResponseBody> list(@Url String url);
//or
@POST("/posts")
@FormUrlEncoded
Observable<Post> savePost(@Field("title") String title,
@Field("body") String body,
@Field("userId") long userId);
}
Последний шаг: При выполнении запросов наш анонимный подписчик отвечает на поток наблюдаемой, который генерирует событие.
public void sendPost(String title, String body) {
// RxJava
mAPIService.savePost(title, body, 1).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Post>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Post post) {
showResponse(post.toString());
}
});
}
именно так вы строите свойДинамические URL: хотите узнать более подробную информацию полное описание ссылка: Отправка данных с HTTP-клиентом Retrofit 2 для Android
и См. базовый URL дляподробные сведения о том, как значение будет преобразовано в базовый URL-адрес для создания полного URL-адреса конечной точки.
, если вы используете kotlin: перейдите по этой ссылке. динамические URL во время выполнения с модификацией 2