开发者

Not Connecting To Web Page On Android

开发者 https://www.devze.com 2023-01-09 08:28 出处:网络
I got a code for connecting the web page but it shows always \"Connection failed; Host is unresolved: www.streetcar.org:80\"

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 开发者_JAVA百科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.


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>


"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.

0

精彩评论

暂无评论...
验证码 换一张
取 消