Métodos de HTTP desautorizado advertencia en el estudio de Android

Estoy intentando hacer una petición http con parámetros. Actualmente estoy usando

private List<NameValuePair> mParams = new ArrayList<NameValuePair>(); private DefaultHttpClient mHttpClient; private HttpPost mHttpPost; 

éstos para hacer la petición del HTTP y está trabajando muy bien. Pero el problema es el estudio de Android está mostrando advertencia obsoleta para todos estos 3. Intenté usar HttpClientBuilder.create().build(); pero el estudio de androide no puede importar las bibliotecas para HttpClientBuilder Intenté descargar y agregar esta dependencia del tarro pero todavía no trabajo. Este es mi código

  mHttpClient = new DefaultHttpClient(); mHttpPost = new HttpPost(url); mParams.add(new BasicNameValuePair("key", value)); mHttpPost.setEntity(new UrlEncodedFormEntity(mParams)); 

Todas estas líneas están mostrando advertencia obsoleta, ¿cuál es el método alternativo para esto?

Puede utilizar HttpsURLConnection lugar de DefaultHttpClient . También NameValuePair está obsoleto, utilice Uri.Builder y appendQueryParameter para enviar parámetros de solicitud.

Pruebe el siguiente fragmento de código:

 URL url = new URL("http://myurl.com"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); connection.setReadTimeout(10000); connection.setConnectTimeout(15000); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); Uri.Builder builder = new Uri.Builder() .appendQueryParameter("key1", valu1) .appendQueryParameter("key2", value2); String query = builder.build().getEncodedQuery(); OutputStream os = connection.getOutputStream(); BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8")); writer.write(query); writer.flush(); writer.close(); os.close(); connection.connect(); 

La clase DefaultHttpClient está obsoleta en su lugar puede utilizar la clase HttpUrlConnection. HttpUrlConnection hassimple API. La clase NameValuePair puede estar obsoleta en api 22. Puede utilizar ContentValues ​​(android.content.ContentValues) en lugar de NameValuePair.

 ContentValues contentValues = new ContentValues(); contentValues.put("Param_name1", Param_value1); contentValues.put("Param_name2", Param_value2); 

Estoy usando el cliente de Okhttp para hacer get y postear la llamada. http://square.github.io/okhttp/

Creo que este enlace te ayudará http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html

desde este enlace puede descargar el último tarro para httpclient4.5. y use

 HttpClient httpClient = HttpClientBuilder.create().build(); 

IDE solicita advertencia en el nuevo DefaultHttpClient , marca esta clase como obsoleta [obsoleta en Api 22] .

Para resolverlo, utilice HttpClientBuilder :

  HttpClient client = HttpClientBuilder.create().build(); HttpGet request = new HttpGet("http://www.google.com"); HttpResponse response = client.execute(request); 

HttpClient está obsoleto desde el level 22 API. Preferir HttpURLConnection para el nuevo código.

Android incluye dos clientes HTTP: HttpURLConnection y Apache HTTP Client. Ambos soportan HTTPS, descargas y descargas de streaming, tiempos de espera configurables, IPv6 y agrupación de conexiones. El cliente HTTP de Apache tiene menos errores en Android 2.2 (Froyo) y versiones anteriores. Para Android 2.3 (Gingerbread) y más tarde, HttpURLConnection es la mejor opción. Su sencilla API y su pequeño tamaño hacen que sea ideal para Android. La compresión transparente y el almacenamiento en caché de respuestas reducen el uso de la red, mejoran la velocidad y ahorran batería. Consulte el blog de desarrolladores de Android para obtener una comparación de los dos clientes HTTP.

  • Acerca de los nuevos métodos y métodos obsoletos en las API de Android
  • Deprecated Classess en Android
  • Android: ¿Qué debo hacer en lugar de usar una función obsoleta (getwidth ())?
  • SCREEN_DIM_WAKE_LOCK obsoleto, ¿hay algún problema?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.