android - 未连接到 Android 上的网页

标签 android android-emulator manifest android-manifest

我得到了连接网页的代码,但它总是显示

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

代码如下。

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

这可能是什么错误?

请帮忙。

谢谢。

最佳答案

这可能是因为“无法识别主机”,因此引发了 UnknownHostException..

浏览此页面:http://developer.android.com/reference/java/net/UnknownHostException.html#UnknownHostException%28%29

检查 AndroidMenifest.xml 文件中的“Internet”权限,如果您还没有添加,请添加以下内容:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

关于android - 未连接到 Android 上的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3350198/

相关文章:

android - xxhdpi 设备的 AVD 未启动

jar - 运行时访问 Clojure 版本号

Puppet - 完全删除 ini_setting

android - 如何在 Android 中手动重新排序 ListView?

java - Android Realm Retrofit 关系错误

android - Android 中的导航栏 : size and position

Android Studio 和锐龙 CPU?

android - 如何在 flutter 中添加水平图像集?

android - 模拟器不能在 Xubuntu 12.04 上运行

Java 项目无法识别从生成的 jar 文件导入