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.
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.