No se puede resolver host: URL Ninguna dirección asociada con hostname
Tengo una llamada de servicio web para derribar un objeto JSON y sólo funciona si tengo la dirección IP y no el nombre de host. He estado bien usando direcciones IP, pero ahora necesito tener el nombre de host.
Aquí está mi código
- HttpClientBuilder falta en Android?
- El error import org.apache.http.client no puede resolverse cuando actualizo sdk a M
- Enviando solicitud de formulario múltiple con varios parámetros?
- Apoyo de mejora SNI
- ¿Por qué esta tarea de fondo falla con una excepción fatal?
StringBuilder stringBuilder = new StringBuilder(); HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 3000); HttpConnectionParams.setSoTimeout(httpParams, 7000); DefaultHttpClient httpClient = new DefaultHttpClient(httpParams); HttpPost httpost = new HttpPost(URL); try { HashMap<String,String> params = new HashMap<String,String>(); // Login info params.put("username", edtUserName.getText().toString()); params.put("password", edtPass.getText().toString()); params.put("deviceOS", "Android"); params.put("deviceOSVersion", android.os.Build.VERSION.RELEASE); params.put("language", "0"); //JSON object holding the login info JSONObject holder = new JSONObject(params); StringEntity se = new StringEntity(holder.toString()); httpost.setEntity(se); httpost.setHeader("Content-Type", "application/json"); //Executing the call HttpResponse response = httpClient.execute(httpost); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if (statusCode == 200) { HttpEntity entity = response.getEntity(); InputStream inputStream = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line); } inputStream.close(); } else { returnCode = -1; Log.d("JSON", "Failed to download file"); } } catch (Exception e) { returnCode = -1; Log.d("readJSONFeed", e.getLocalizedMessage()); } return stringBuilder.toString();
No sé por qué eso no funciona. Estoy probando en un teléfono con conexión Wifi, Mi manifiesto tiene el <uses-permission android:name="android.permission.INTERNET" />
y <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Este servicio web funciona. Simplemente no en Android
Si alguien tiene una idea que sería genial, gracias.
- Realizar una solicitud HTTP con android
- ¿Con qué puedo reemplazar http métodos obsoletos?
- Certificado de fijación en Android con Robospice
- Construcción multipart / form-data con android
- ¿Puedo usar una sola instancia de AndroidHttpClient para múltiples llamadas simultáneas?
- ¿Qué versión de httpmime puedo usar con HttpClient de Android?
- ¿Por qué android obtiene el certificado ssl incorrecto? (Dos dominios, un servidor)
- Android - MultipartEntity y dependencias
Lo arreglé eliminando estas líneas
HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 3000); HttpConnectionParams.setSoTimeout(httpParams, 7000); DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
Y reemplazándolo con este código
HttpClient httpClient = MainActivity.createHttpClient(); public static HttpClient createHttpClient(){ try { KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); trustStore.load(null, null); SSLSocketFactory sf = new MySSLSocketFactory(trustStore); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, 15000); HttpConnectionParams.setSoTimeout(params, 5000); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); registry.register(new Scheme("https", sf, 443)); ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry); return new DefaultHttpClient(ccm, params); } catch (Exception e) { return new DefaultHttpClient(); } }
- Cómo incrustar Wiktionary para acceso sin conexión en la aplicación de Android?
- Ejecución Animación y conmutador de imágenes al mismo tiempo