2 u010869264 u010869264 于 2016.03.09 17:38 提问

android获取网页源码问题

以下是我从网上找的获取网页源码的 代码 所有包都已经正常导入 但是编译后 程序一运行就崩溃 求大神指点
import 略;

/**

  • @author Jasonzhou
  • @since 2013-03-21
  • @功能 读取网页内容
  • @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容 **/

public class MainActivity extends Activity {

public String url = "http://blog.csdn.net/jasonzhou613/article/details/7905388";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    manageException();// 处理抛出异常
    TextView tv = (TextView) findViewById(R.id.text);
    String myString = null;
    myString = posturl(url);
    // 设置屏幕显示
     Log.i("---网页代码---", "" + myString);
    String html = myString;
    Document doc = Jsoup.parse(html);
    tv.setText(doc.title());

}

/**
 * 获取参数指定的网页代码,将其返回给调用者,由调用者对其解析 返回String
 */
public String posturl(String url) {
    InputStream is = null;
    String result = "";

    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    } catch (Exception e) {
        return "Fail to establish http connection!" + e.toString();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "utf-8"));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();

        result = sb.toString();
    } catch (Exception e) {
        return "Fail to convert net stream!";
    }

    return result;
}

public void manageException() {
    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
            .detectDiskReads().detectDiskWrites().detectNetwork() // or
                                                                    // .detectAll()
                                                                    // for
                                                                    // all
                                                                    // detectable
                                                                    // problems
            .penaltyLog().build());
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()
            .build());
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

3个回答

lovingning
lovingning   2016.03.09 18:07
已采纳

第一:进行耗时任务需要另外开启线程。你过去网页代码需要开线程获取数据后交给handler来处理,或者直接转给主线程。
第二:httpclient进行数据传输的方式已经被废弃了,要用url.openconnect方法博客里有。

qq_21912927
qq_21912927   2016.03.09 21:35

主线程不能进行耗时操作的 网络请求当然算 推荐看看github上的开源框架 XUtils

lxk_1993
lxk_1993   Rxr 2016.03.11 08:50

你的把报错信息贴出来 才能更快的找到问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android中如何获取网页源码?
技术点:1、通过已知的网页路径获得流 2、把流转换成字节数组 3、把字节数组转换成String字符串显示在TextView控件中 一、获得流     public static String getHtml(String path) throws Exception{     URL url = new URL(path);     HttpURLConnection conn
android 获取当前webview显示的网页的源码和网页中框架的源码
如果是仅仅是为了获取网页的源代码的话,可以参考这篇文章:Android: 在WebView中获取网页源码但是,我遇到的情况是网页中套用了框架,仅仅查看网页源代码是不能得到我想要的数据的,需要获得框架的源代码,经过多次测试,终于找到解决办法。 废话不多说,直接上代码: 自定义WebViewClient代码:public class MWebViewClient extends WebViewCli
android获取网页源码
android下一个获取制定url的一个页面源代码的例子简单例子,因为找了几个都无法正常运行。源码获取部分代码来源于http://blog.csdn.net/honglei_zh/article/details/8537394
Android根据网址获取网页源码并抓取相应字段
根据网址获取源码 /** * 根据网址返回网页的源码 * * @param htmlUrl * @return */ public String getHtmlSource(String htmlUrl) { URL url; StringBuffer sb = new StringBuffer(); try { url = new URL(htmlUr
Android开发之获取网页源码
首先,这里我们用到了访问网络的权限,故要在清单文件中加入下列代码 然后,根据http协议,要访问服务器上的某个网页,必须先建立一个连接,连接的参数为一个URL URL url=new URL(“http://www.baidu.com”); HttpURLConnection connection = (HttpURLConnection) url.openConnect
Android获取网页源代码
1、首先在AndroidManifest中加入Internet权限:  2、Activity中得代码如下:public class GetHtmlCodeActivity extends Activity { @Override public void on
android根据Url获取访问网页的源码
/** * 获取HTML数据 * * */ public class HtmlService { public static String getHtml(String path) throws Exception { // 通过网络地址创建URL对象 URL url = new URL(path); // 根据URL
android webview获取网页源代码,js执行前后
webview获取网页源代码分两种,一种是js执行前,一种是js执行后 1.js执行前 调用getHtml即可 public static String getHtml(String path) throws Exception { // 通过网络地址创建URL对象 URL url = new URL(path); // 根据URL // 打开连接,URL
根据URL获取网页TXT源码【Android】
public static String downLoad(String url) { String response = ""; //第一步:创建HttpClient对象 HttpClient httpClient = new DefaultHttpClient(); //第二步:创建代表请求的对象,参数是访问的服务器地址 HttpGet httpGet
Android-使用WebView获取百度页面源码
目标效果:   点击按钮,在TextView中显示百度页面的源码。 1.activity_main.xml页面放置Button控件和TextView控件。 activity_main.xml页面: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="