Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

414
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda