views:

198

answers:

3

Hi,

I got a code for connecting the web page but it shows always

"Connection failed; Host is unresolved: www.streetcar.org:80"

The code is as follows.

package myapp.httpdwnd;

import android.app.Activity;
import java.io.InputStream;  
import android.os.Bundle;  
import android.widget.LinearLayout;  
import android.widget.TextView;  
import java.io.IOException;  
import java.io.BufferedReader;  
import java.io.InputStreamReader;  
import org.apache.http.HttpEntity;  
import org.apache.http.HttpResponse;  
import org.apache.http.client.HttpClient;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.DefaultHttpClient;  
import org.json.JSONArray;  
import org.json.JSONException;  
import org.json.JSONObject;  


public class httpdwndActivity extends Activity
{
      TextView txt;  

  @Override
  public void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
     LinearLayout rootLayout = new LinearLayout(getApplicationContext());  
             txt = new TextView(getApplicationContext());  
             rootLayout.addView(txt);  
             setContentView(rootLayout);
               txt.setText("Connecting...");  
                      txt.setText(connect("http://www.streetcar.org/mim/cable/images/cable-01.jpg")); 
  }

    private String connect(String url){  

               // Create the httpclient  
               HttpClient httpclient = new DefaultHttpClient();  

               // Prepare a request object  
               HttpGet httpget = new HttpGet(url);   

               // Execute the request  
               HttpResponse response;  

               // return string  
               String returnString = null;  

               try {  

                   // Open the webpage.  
                   response = httpclient.execute(httpget);  

                   if(response.getStatusLine().getStatusCode() == 200){  
                       // Connection was established. Get the content.   

                       HttpEntity entity = response.getEntity();  
                       // If the response does not enclose an entity, there is no need  
                       // to worry about connection release  

                       if (entity != null) {  
                           // A Simple JSON Response Read  
                           InputStream instream = entity.getContent();  

                           // Load the requested page converted to a string into a JSONObject.  
                           JSONObject myAwway = new JSONObject(convertStreamToString(instream));  

                           // Get the query value'  
                           String query = myAwway.getString("query");  

                           // Make array of the suggestions  
                           JSONArray suggestions = myAwway.getJSONArray("suggestions");  

                           // Build the return string.  
                           returnString = "Found: " + suggestions.length() + " locations for " + query;  
                           for (int i = 0; i < suggestions.length(); i++) {  
                               returnString += "\n\t" + suggestions.getString(i);  
                           }  

                           // Close the stream.  
                           instream.close();  
                       }  
                   }  
                   else {  
                       // code here for a response other than 200.  A response 200 means the webpage was ok  
                       // Other codes include 404 - not found, 301 - redirect etc...  
                      // Display the response line.  
                       returnString = "Unable to load page - " + response.getStatusLine();  
                   }  
               }  
               catch (IOException  ex) {  
                   // thrown by line 80 - getContent();  
                   // Connection was not established  
                  returnString = "Connection failed; " + ex.getMessage();  
               }  
               catch (JSONException ex){  
                   // JSON errors  
                   returnString = "JSON failed; " + ex.getMessage();  
               }  
               return returnString;
           }  

           private static String convertStreamToString(InputStream is) {  
               /* 
                * To convert the InputStream to String we use the BufferedReader.readLine() 
                * method. We iterate until the BufferedReader return null which means 
                * there's no more data to read. Each line will appended to a StringBuilder 
                * and returned as String. 
                */  
               BufferedReader reader = new BufferedReader(new InputStreamReader(is));  
               StringBuilder sb = new StringBuilder();  

               String line = null;  
               try {  
                   while ((line = reader.readLine()) != null) {  
                       sb.append(line + "\n");  
                   }  
               } catch (IOException e) {  
                   e.printStackTrace();  
               } finally {  
                   try {  
                       is.close();  
                   } catch (IOException e) {  
                       e.printStackTrace();  
                   }  
               }  
               return sb.toString();  
           } }

What may be the mistake in this?

Please help.

Thanks.

+2  A: 

It may be becoz of "Host is not recognized" and hence UnknownHostException is raised..

Go through this Page : http://developer.android.com/reference/java/net/UnknownHostException.html#UnknownHostException%28%29

OR

check about the "Internet" permission in your AndroidMenifest.xml file, if you haven't added then add the following:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
PM - Paresh Mayani
thanks mayani,i have used as you said but still there was no improvement
aditi
A: 

"Host is unresolved" means the DNS lookup for your server failed. In the emulator, this may mean that you do not have an Internet connection -- see if other applications (e.g., Browser) work. Also, see if the Browser app can get to www.streetcar.org.

CommonsWare
thanksi checked it out.i am having connection and tried in other browsers to open that site.
aditi
A: 

Are you using a HTTP proxy? If so, does the proxy require a password?

Zabba