【问题标题】:Get HTML code from url in android从android中的url获取HTML代码
【发布时间】:2013-06-10 08:09:43
【问题描述】:

我想知道是否有任何方法可以从任何 url 获取 HTML 代码并将该代码保存为代码中的字符串? 我有一个方法:

private String getHtmlData(Context context, String data){
    String head = "<head><style>@font-face {font-family: 'verdana';src: url('file://"+ context.getFilesDir().getAbsolutePath()+ "/verdana.ttf');}body {font-family: 'verdana';}</style></head>";
    String htmlData= "<html>"+head+"<body>"+data+"</body></html>" ;
    return htmlData;
 }

我想从 url 获取这个“数据”。我该怎么做?

【问题讨论】:

    标签: android


    【解决方案1】:

    当然可以。这实际上是响应体。你可以像这样得到它:

    HttpResponse response = client.execute(post);
    String htmlPage = EntityUtils.toString(response.getEntity(), "ISO-8859-1");
    

    【讨论】:

      【解决方案2】:

      试试这个(手写)

      URL google = new URL("http://www.google.com/");
      BufferedReader in = new BufferedReader(new InputStreamReader(google.openStream()));
      String input;
      StringBuffer stringBuffer = new StringBuffer();
      while ((input = in.readLine()) != null)
      {
          stringBuffer.append(input);
      }
      in.close();
      String htmlData = stringBuffer.toString();
      

      【讨论】:

      • 我得到 06-10 10:43:45.094: E/AndroidRuntime(7210): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fontfordroid/com.example.fontfordroid. MainActivity}: android.os.NetworkOnMainThreadException
      • 您是否授予您的应用上网权限?
      • 很奇怪,我自己测试了一下,效果很好!其他看这里:stackoverflow.com/questions/2423498/…
      • 您将此代码粘贴到 Thread 或 AsyncTask 中?我将此代码粘贴到 onCreate 中。
      • 从 API LEVEL 11 开始,您不能在主线程上执行网络相关任务,您必须在另一个线程中执行。否则你会得到一个异常“android.os.NetworkOnMainThreadException”。
      【解决方案3】:

      请查看this,任何其他解析器也可以工作,或者您甚至可以自己检查字符串并仅检索您想要的部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-06
        • 1970-01-01
        • 2011-12-29
        • 2011-07-14
        • 1970-01-01
        相关资源
        最近更新 更多