Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
Cómo cambio la URL de actualización en tiempo de ejecución

Necesito cambiar la base de URL en la actualización, estoy usando koin para crear un módulo de actualización en el inicio de la aplicación y quiero cambiar esta URL en tiempo de ejecución.

Ya intenté cambiar baseUrl(" http://192.168.192.168/ ") a baseUrl("http://") y cambiar la URL en la llamada de actualización, pero mi aplicación falla y devuelve un error de URL ilegal.

Esta es mi diversión para crear el constructor.

 fun createRetrofit(okHttpClient: OkHttpClient): Retrofit { return Retrofit.Builder() .baseUrl("http://192.168.192.168/")//i need change this at runtime .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build() }

crear un bean a mi módulo

 val retrofitModule: Module = applicationContext { bean { createRetrofit(get()) } }

y comienza el koin:

 startKoin(application = this, modules = listOf(retrofitModule, ...) )

alguien me puede ayudar con esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Ya intenté cambiar baseUrl(" http://192.168.192.168/ ") a baseUrl("http://") y cambiar la URL en la llamada de actualización, pero mi aplicación falla y devuelve un error de URL ilegal.

Puede dejarlo como baseUrl si usa @URL , sobrescribirá el que está en su Retrofit.Builder()

Puede usar el parámetro @URL para cambiar el punto final dinámicamente.

 @GET fun getUsers(@Url String url) : Observable<UserResponse>
over 4 years ago · Santiago Trujillo Denunciar

0

debe agregar estas líneas en su código:

Primer paso: agregue el nuevo CallAdapter RxJavaCallAdapterFactory.create() al crear una instancia de 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; }

Siguiente paso: actualice el APIService, por ejemplo: -> método savePost(String title, String body, String userId) para convertirse en un Observable.

 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); }

Paso final: al realizar las solicitudes, nuestro suscriptor anónimo responde a la transmisión del observable que emite el evento.

 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()); } }); }

esta es la forma en que crea sus URL dinámicas: desea obtener más detalles enlace de descripción completa: Envío de datos con el cliente HTTP Retrofit 2 para Android

y Consulte la URL base para obtener detalles sobre cómo se resolverá el valor con una URL base para crear la URL de punto final completa.

si está usando kotlin: siga este enlace. URL dinámicas en tiempo de ejecución con Retrofit 2

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda