Uso de OkHttp en Kotlin

OkHttp

OkHttp

Recipies: Asynchronous Get

private final OkHttpClient client = new OkHttpClient();

public void run() throws Exception {
  Request request = new Request.Builder()
      .url("http://publicobject.com/helloworld.txt")
      .build();

  client.newCall(request).enqueue(new Callback() {
    @Override public void onFailure(Call call, IOException e) {
      e.printStackTrace();
    }

    @Override public void onResponse(Call call, Response response) throws IOException {
      try (ResponseBody responseBody = response.body()) {
        if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

        Headers responseHeaders = response.headers();
        for (int i = 0, size = responseHeaders.size(); i < size; i++) {
          System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
        }

        System.out.println(responseBody.string());
      }
    }
  });
}

Using OkHttp

Sending and Receiving Network Requests

Asynchronous Network Calls

Updating Views on UIThread

 

Ejemplo: Descarga de un fichero usando OkHttp

Añadir la biblioteca de okhttp a build.gradle (y sincronizar)

Release

dependencies {

    


    implementation("com.squareup.okhttp3:okhttp:4.12.0")
}

Añadir el switch (para elegir entre AsyncTask y OkHttp)

Si está activo el switch, descargar el fichero usando OkHttp y, si no lo está, realizar la descarga usando AsyncTask

override fun onClick(view: View) {
    try {
        url = URL(binding.editText.text.toString())
        if (binding.switch1.isChecked) {
            //descarga usando OkHttp
            OkHTTPdownload(url)
        } else  // descarga usando AsyncTask y Java.net
            download(url)
    } catch (e: MalformedURLException) {
        e.printStackTrace()
        showError(e.message)
    } catch (ex: IOException) {
        showError(ex.message)
    }
}

 

Realizar la descarga

private fun OkHTTPdownload(web: URL) {



}

mostrar la respuesta

private fun showResponse(message: String) {


}

 

Comprobar el funcionamiento usando un servidor web en Internet y un servidor local:

 

Diferencia entre OkHttp y HttpUrlConnection?

 

Ejercicio de la tarea online: Divisas

https://dam.org.es/ficheros/cambio.txt

https://dam.org.es/ficheros/rate.txt

Más información

OkHttp Android Example Tutorial

OkHttp in Android

Deja una respuesta