【问题标题】:Cannot Download The Whole YouTube Link's HTML Code无法下载整个 YouTube 链接的 HTML 代码
【发布时间】:2013-01-19 03:54:20
【问题描述】:

我正在编写一个下载 youtube 视频的应用程序,但遇到了一点问题。

您可能知道,youtube 中的每个视频链接都包含指向该视频的直接链接。 当页面使用 flash flayer(而不是 html5 左右)时,它存储在 flash 对象中(在它的 flashvar attr 中)。 我的应用解析该 Flash 对象并从中提取那些直接链接(每个可用视频质量一个链接)。

我通过下载视频的html代码(例如http://www.youtube.com/watch?v=VIDEOID)并解析得到flash对象的html代码。

我使用asynctask下载html代码(非手机版),这里是我的下载代码:

      HttpClient client = new DefaultHttpClient();
      client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1)");

      HttpGet request = new HttpGet(url);
      HttpResponse response = client.execute(request);

      String html = "";
      InputStream in = response.getEntity().getContent();
      BufferedReader reader = new BufferedReader(new InputStreamReader(in));
      StringBuilder str = new StringBuilder();
      String line = null;
      while((line = reader.readLine()) != null)
      {
          str.append(line);
      }
      in.close();
      html = str.toString();

      return html;

现在我遇到了一个小问题:

上面的代码没有下载 whloe html 代码。下载的 html 字符串在中间某处被剪切,我没有得到 flash 对象部分。此功能适用于其他网站!

我做错了吗?

谢谢:)

【问题讨论】:

  • 您确定要为其他网站工作吗?您是否尝试过大型网站,例如维基百科中的长条目?
  • 刚刚尝试了一个维基百科条目,但也没有用。所以我重新启动了eclipse,现在可以了!我将 html 设置为 TextView 中的文本,所以也许我只是出于某种原因没有看到整个 HTML...

标签: android youtube download


【解决方案1】:

查看BasicResponseHandler

  String html = client.execute(request, new BasicResponseHandler());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多