Failed to resolve host: URL No address associated with host name

I have a web service call to knock down a JSON object, and it only works if I have an IP address and not a host name. I use IP addresses perfectly, but now I need to have a host name.

Here is my code

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(); 

I do not know why this does not work. I am testing a phone with Wi-Fi connection, my manifest has <uses-permission android:name="android.permission.INTERNET" /> and <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

This web service really works. Just not on Android

If anyone has an idea, that would be great, thanks.

+8
android unknown-host
source share
1 answer

I fixed this by deleting these lines

 HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 3000); HttpConnectionParams.setSoTimeout(httpParams, 7000); DefaultHttpClient httpClient = new DefaultHttpClient(httpParams); 

And replacing it with this code

 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(); } } 
+5
source share

All Articles