Complementación de solicitudes HTTP (Kotlin): implementación y conceptos nativos | autor: ADX 2099 | Octubre de 2020

Viene con solicitudes HTTP (Kotlin): conceptos e implementaciones nativas

avance

Aplicaciones de Android que utilizan nuestros dispositivos junto con la comunicación en Internet con estas características como consumidores, información sobre una página específica, carga una imagen, un texto y diferentes características que se comparten con Apps.

Para comentar, necesitamos conocer los elementos conorte los que trabajaremos para ello primero tendremos el modelo Cliente – Servidor at elde Clientes Tengo un dispositivo con una interfaz de usuario y puedo conectarme a Internet mediante un teléfono o una computadora. Otra parte tenemos una Servidor es probable que una empresa pueda prestarnos un servicio, de modo que podamos utilizar el servidor y podamos controlar la información que proporcionamos.

http

Nuestras aplicaciones de Android utilizan regularmente los siguientes métodos para interactuar con un servidor

  • Enviar: Envía datos para procesos a un recurso específico.
  • Obtener: Solicita información de una fuente específica.

Bueno, con esta pequeña introducción, ahora revisaremos cómo podemos implementar solicitudes HTTP en Android. Durante estos artículos, me gustaría revisar tres formas de almacenamiento.

  1. Nativo
  2. Voleo
  3. OkHttp

Trabajamos con solicitudes HTTP verificando que necesitamos verificar que el dispositivo esté disponible con una conexión activa. Para estar disponible, se recomienda que se utilice una clase de revisión y que esté conectada al dispositivo. Es la clase

class Network {

companion object{
fun isConnected(activity: AppCompatActivity):Boolean{
val connectivityManager = activity.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return networkInfo != null && networkInfo.isConnected
}
}

}

La realización de esta clase consiste básicamente en exponer un método estático de uso del objeto. Objeto acompañante es un singleton y sus miembros pueden acceder directamente al número de la clase que contiene el contenido (también puede insertar el número del accesorio si es explícito sobre el acceso al accesorio. una función que te permite recargar un booleano y recibir como parámetro del contexto.

Podemos usarlos

if(Network.isConnected(this)){
Toast.makeText(this,"We have connection", Toast.LENGTH_LONG).show()
}else{
Toast.makeText(this, "Could not find an Active Connection", Toast.LENGTH_LONG).show()
}

Los comentarios sobre la solicitud nativa básica se conectarán a nuestra aplicación para consumir cualquier página. Requerimos los siguientes pasos.

  1. Declarar la política política
  2. Prepárese para el InputStream opcional
  3. Preparación de una URL para crear una URL de formato
  4. Crear una conexión HttpURLConnection
  5. Determinar el método de solicitud
  6. lee el búfer Reader leyendo el texto.
  7. Aceptar ClearTexttraffic

Este es un ejemplo simple de licitaciones para permitir a los solicitantes de asilo en la red, no es correcto con respecto a las buenas prácticas de programación para este uso.

val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
StrictMode.setThreadPolicy(policy)

Prepárese para el InputStream opcional

Kotlin le permitirá almacenar un valor cero en una variable y esta vez puede usar mucho uso en Input Stream para que pueda obtener cero para el que administra la aplicación.

var inputStream:InputStream? = null

Preparación de una URL para crear una URL de formato

Si necesita consultar una URL, siempre tendrá que conectarse a un punto final, en este caso enviaremos y nos conectaremos a una URL y usaremos este ejemplo. https://alexwohlbruck.github.io/cat-facts/

val url = URL(url)

Crear una conexión HttpURLConnection

¡Ahora! tenemos una conexión al tipo HttpURLConnection que es una clase con soporte para funciones específicas de HTTP.

val url = URL(url)
val connection = url.openConnection() as HttpURLConnection

Determinar el método de solicitud

A medida que cambiamos el principio, tenemos que implementar conexiones HTTP de la siguiente manera:

connection.requestMethod = "GET"
connection.connect()

Leer el búfer del lector leyendo el texto.

Podemos encapsular este código en una función y reevaluar un valor para la evaluación evaluada. Tan pronto como tenga un flujo de datos que nos permita permitir el acceso a la información en este ejemplo, usaremos el código html de la página WEB.

inputStream = connection.inputStream
return inputStream.bufferedReader().use{
it
.readText()
}

Aceptar ClearTexttraffic

Descargar la versión 8 para Android con modificación de parámetros, algunos parámetros bajo solicitud de implementación subordinada es es es que para este ejemplo tenemos que acuerdo una bandera en el manifiesto. Android: usesCleartextTraffic = «true»

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:usesCleartextTraffic="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">

Con esta bandera podemos conectarnos a la página WEB y ver el resultado

Encapsulado el código cambiado en una función que reanuda la respuesta es una función completa.

@Throws(IOException::class)
private fun downloadData(url:String):String {

val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
StrictMode.setThreadPolicy(policy)
var inputStream:InputStream? = null
try {
val url = URL(url)
val connection = url.openConnection() as HttpURLConnection
connection.requestMethod = "GET"
connection.connect()
inputStream = connection.inputStream
return inputStream.bufferedReader().use{
it
.readText()
}
}finally {

if(inputStream != null){
inputStream.close()
}

}
}

Bueno, con este mes de octubre simplemente podemos llamar a la función y completarla en el registro que regresará la solicitud. Quiero usar el método está conectado () de la clase Network para verificar que haya una conexión activa.

if(Network.isConnected(this)){
Log.d("TAG1", downloadData("https://alexwohlbruck.github.io/cat-facts/"))
}
Respuesta

Con esta primera entrega hemos aprosido los básicos de HTTP Solicite otra implementación de nuestra primera llamada. Espero que esté iniciando el desarrollo de Android y que tenga más experiencia y no haya implementado ninguna implementación, ya que esto es de mucha ayuda.

En la siguiente tarea implementaremos la implementación[ondeOKHTTPyVolley[ondeOKHTTPyVolley[ondeOKHTTPyVolley[ondeOKHTTPyVolley

Deja una respuesta

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