问题描述
- 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"";@Overridepublic 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( isutf-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());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main menu); return true;}
}
解决方案
第一:进行耗时任务需要另外开启线程。你过去网页代码需要开线程获取数据后交给handler来处理,或者直接转给主线程。
第二:httpclient进行数据传输的方式已经被废弃了,要用url.openconnect方法博客里有。
解决方案二:
主线程不能进行耗时操作的 网络请求当然算 推荐看看github上的开源框架 XUtils
解决方案三:
你的把报错信息贴出来 才能更快的找到问题
时间: 2024-10-31 09:29:45