Saltar al contenido

¿Cómo agregar parámetros de consulta a una solicitud HTTP GET de OkHttp?

Agradecemos tu apoyo para compartir nuestras crónicas con relación a las ciencias de la computación.

Solución:

Para okhttp3:

private static final OkHttpClient client = new OkHttpClient().newBuilder()
    .connectTimeout(10, TimeUnit.SECONDS)
    .readTimeout(30, TimeUnit.SECONDS)
    .build();

public static void get(String url, Mapparams, Callback responseCallback) 
    HttpUrl.Builder httpBuilder = HttpUrl.parse(url).newBuilder();
    if (params != null) 
       for(Map.Entry param : params.entrySet()) 
           httpBuilder.addQueryParameter(param.getKey(),param.getValue());
       
    
    Request request = new Request.Builder().url(httpBuilder.build()).build();
    client.newCall(request).enqueue(responseCallback);

Aquí está mi interceptor

    private static class AuthInterceptor implements Interceptor 

    private String mApiKey;

    public AuthInterceptor(String apiKey) 
        mApiKey = apiKey;
    

    @Override
    public Response intercept(Chain chain) throws IOException 
        HttpUrl url = chain.request().httpUrl()
                .newBuilder()
                .addQueryParameter("api_key", mApiKey)
                .build();
        Request request = chain.request().newBuilder().url(url).build();
        return chain.proceed(request);
    

Como se mencionó en la otra respuesta, okhttp v2.4 ofrece una nueva funcionalidad que lo hace posible.

Consulte http://square.github.io/okhttp/2.x/okhttp/com/squareup/okhttp/HttpUrl.Builder.html#addQueryParameter-java.lang.String-java.lang.String-



Esto no es posible con la versión actual de okhttp, no se proporciona ningún método que lo maneje por usted.

Lo siguiente mejor es construir una URL string o un URL objeto (encontrado en java.net.URL) con la consulta incluida, y pásela al generador de solicitudes de okhttp.

ingrese la descripción de la imagen aquí

Como puede ver, Request.Builder puede tomar una cadena o una URL.

Se pueden encontrar ejemplos sobre cómo crear una URL en ¿Cuál es la forma idiomática de componer una URL o URI en Java?

Te mostramos comentarios y calificaciones

Si para ti ha resultado útil nuestro artículo, sería de mucha ayuda si lo compartieras con más programadores y nos ayudes a difundir esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *