Red de conocimiento del abogados - Ley de patentes - Cómo utilizar HttpClient para conectarse a datos de red en el desarrollo de Android

Cómo utilizar HttpClient para conectarse a datos de red en el desarrollo de Android

Acceso a la red HttpClient

1. Acceso a la red HttpClient:

(1) Introducción:

1. , se puede lograr el acceso a la red. En Android, HttpClient se integra con éxito, por lo que puede usar HttpClient directamente para acceder a la red en Android.

2. En comparación con HttpURLConnection, HttpClient encapsula uniformemente las operaciones de flujo de entrada y salida en las clases HttpGet, HttpPost y HttpRequest.

HttpClient: objeto de conexión de red;

HttpGet: representa el envío de una solicitud GET;

HttpPost: representa el envío de una solicitud POST; HttpResponse: representa un objeto que maneja las respuestas del servidor.

Objeto HTTPEntity: este objeto contiene todo el contenido devuelto por el servidor.

3. Pasos de uso: (Seis pasos) Puntos clave

Crear un objeto HttpClient: se obtiene al crear una instancia de DefaultHttpClient;

Crear un objeto HttpGet o HttpPost: se obtiene al crear una instancia HttpGet o HttpPost, y el parámetro del constructor es urlstring (es decir, la dirección URL de red a la que se debe acceder). También puede agregar parámetros de solicitud llamando al método setParams();

Llame al método ejecutar() del objeto HttpClient. El parámetro es el objeto HttpGet o HttpPost recién creado y el valor de retorno es HttpResponse. object;

Obtenga si el estado de respuesta del servidor es 200 mediante el método getStatusLine() y el método getStatusCode() en el objeto de respuesta.

Llame al método getEntity() del objeto HttpResponse y devuelva el objeto HttpEntity. Este objeto contiene todo el contenido devuelto por el servidor.

Utilice el método toString() o toByteArray() de EntityUtils para procesar el objeto HttpEntity, u opere el objeto HttpEntity a través de la secuencia IO.

(2) Encapsular la clase de herramienta HttpClientHelper:

clase pública HttpClientHelper {

pública estática HttpClient checkNetwork(String url) {

HttpClient httpClient = nuevo DefaultHttpClient();

Solicitud HttpGet = nuevo HttpGet(url);

HttpResponse httpResponse = null;

prueba {

httpResponse = httpClient.execute(solicitud);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

devuelve httpClient;

}

} captura (ClientProtocolException e) {

e.printStackTrace();

} captura (IOException e) {

e .printStackTrace();

}

return null;

}

/**

* Función : implementar el acceso de red a los archivos y almacenar los datos obtenidos en el flujo de archivos

*

* @param url

*: dirección URL para acceder a la red

* @return inputstream

*/

flujo de entrada estático público loadFileFromURL(String url) {

HttpClient httpClient = new DefaultHttpClient();

HttpGet requestGet = new HttpGet(url);

HttpResponse httpResponse

prueba {

httpResponse = httpClient.execute(requestGet) ;

if (httpResponse.getStatusLine().getStatusCode() == 200) {

entidad HTTPEntity = httpResponse.getEntity();

devolver entidad. getContent();

}

} captura (Excepción e) {

e.printStackTrace();

}

return null;

}

/**

* Función: implementar el acceso de red a los archivos y almacenar los datos obtenidos en una matriz de bytes

*

* @param url

*: dirección URL para acceder a la red

* @return byte[]

*/

pub

lic byte estático[] loadByteFromURL(String url) {

HttpClient httpClient = new DefaultHttpClient();

HttpGet requestGet = new HttpGet(url);

intenta {

HttpResponse httpResponse = httpClient.execute(requestGet);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

HttpEntity httpEntity = httpResponse.getEntity();

return EntityUtils.toByteArray(httpEntity);

}

} catch (Excepción e) {

e.printStackTrace();

System.out.println("====gt;" e.toString());

}

return null;

}

/**

* Función: implementar el acceso de red a archivos y devolver una cadena

*

* @param url

*: Dirección URL para acceder a la red

* @return String

*/

cadena estática pública loadTextFromURL(String url) {

HttpClient httpClient = new DefaultHttpClient();

HttpGet requestGet = new HttpGet(url);

prueba {

p>

HttpResponse httpResponse = httpClient.execute(requestGet);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

HttpEntity httpEntity = httpResponse. getEntity();

return EntityUtils.toString(httpEntity, "utf-8");

}

} catch ( Excepción e) {

e.printStackTrace();

}

return null;

}

/**

* Función: para lograr el acceso de red a los archivos, primero envíe los datos al servidor mediante el método "GET" y luego devuelva los datos correspondientes

*

* @param url

*: dirección URL para acceder a la red

* @param params

* String url: parámetros que deben pasarse al servidor al acceder a la URL.

* El formato del segundo parámetro es: nombre de usuario=wangxiangjunamp contraseña=123456

* @return byte[]

*/

byte estático público[] doGetSubmit(String url, String params) {

HttpClient httpClient = new DefaultHttpClient();

HttpGet requestGet = new HttpGet(url "?" parámetros)

pruebe {

HttpResponse httpResponse = httpClient.execute(requestGet);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

HttpEntity httpEntity = httpResponse.getEntity();

return EntityUtils.toByteArray(httpEntity);

}

} catch (Excepción e ) {

e.printStackTrace();

}

return null;

}

/ * *

* Función: para lograr el acceso de red a los archivos, primero envíe los datos al servidor mediante el método "POST" y luego devuelva los datos correspondientes.

*

* @param url

*: Dirección URL para acceder a la red

* @param params

* String url: Parámetros a los que se debe pasar el servidor al acceder a la URL.

El segundo parámetro es: Listlt; NameValuePairgt;

* @return byte[]

*/

byte estático público[] doPostSubmit(String url, Listlt; NameValuePairgt; params) {

HttpClient httpClient = new DefaultHttpClient();

HttpPost requestPost = new HttpPost(url);

prueba {

requestPost.setEntity(new UrlEncodedFormEntity(params, "utf-8"));

HttpResponse httpResponse = httpClient.execute(requestPost);

if (httpResponse.getStatusLine( ) .getStatusCode() == 200) {

HttpEntity httpEntity = httpResponse.getEntity();

return EntityUtils.toByteArray(httpEntity);

}< / p>

} catch (Excepción e) {

e.printStackTrace();

}

return null;

}

/**

* Función: para lograr el acceso de red a los archivos, primero envíe los datos al servidor a través del método "POST" y luego devuelva los datos correspondientes

*

* @param url

*: dirección URL para acceder a la red

* @param params

* String URL: acceda a los parámetros de la URL que deben pasarse al servidor.

Maplt; String, Objectgt;

* @return byte[]

*/

byte estático público[] doPostSubmit(String url, Maplt; String, Objectgt ; parámetros) {

HttpClient httpClient = nuevo DefaultHttpClient();

HttpPost requestPost = nuevo HttpPost(url);

Listlt; parámetros BasicNameValuePairgt; ; BasicNameValuePairgt ();

prueba {

if (params != null) {

for (Map.Entrylt; String, Objectgt; entrada: params .entrySet()) {

Clave de cadena = entrada.getKey();

Valor de cadena = entrada.getValue().toString();

BasicNameValuePair nameValuePair = new BasicNameValuePair(

clave, valor);

parameters.add(nameValuePair);

}

}

requestPost

.setEntity(new UrlEncodedFormEntity(parameters, "utf-8"));

HttpResponse httpResponse = httpClient.execute(requestPost);

if (httpResponse.getStatusLine().getStatusCode() == 200) {

HttpEntity httpEntity = httpResponse.getEntity();

return EntityUtils.toByteArray(httpEntity);

}

} captura (Excepción e) {

e.printStackTrace();

}

retorno nulo;

}

}