在学校里开始做毕业设计,之前学习android花了十几天的时间,虽然时间很短,但是android基础都过了一遍,当时使用百度地图API制作了一个APP,自己感觉还比较的满意,到现在四个月,就没有碰android,忘的差不多了,所以毕设可以说是边学边做吧!

    首先制作这样的功能,访问学校首页并将首页里四大模块的新闻解析出来,并先是在手机上。所以,开始要能成功的连接上URL。

照着互联网上的博客,下了一个Dmoe,简单的改了一下,代码如下:

首先是一个方法,使用HTTPURLConnection连接url并获取网页的html代码。

/** * @param urlStr * @return * @throws Exception */public static String doGet(String urlStr) throws Exception      {          StringBuffer sb = new StringBuffer();          try          {              URL url = new URL(urlStr);              HttpURLConnection conn = (HttpURLConnection) url.openConnection();              conn.setRequestMethod("GET");              conn.setConnectTimeout(5000);              conn.setDoInput(true);              conn.setDoOutput(true);                if (conn.getResponseCode() == 200)              {                  InputStream is = conn.getInputStream();                  int len = 0;                  byte[] buf = new byte[1024];                    while ((len = is.read(buf)) != -1)                  {                      sb.append(new String(buf, 0, len, "UTF-8"));                  }                    is.close();              } else              {                  throw new Exception("访问网络失败!");              }            } catch (Exception e)          {              throw new Exception("访问网络失败!");          }          return sb.toString();      }  
然后是load()方法

protected void load() throws Exception {String htmlString = doGet("http://www.chzu.edu.cn/");doc = Jsoup.parse(htmlString);Intent intent = new Intent();intent.putExtra("content", htmlString);intent.setClass(MainActivity.this, HtmlActivity.class);this.startActivity(intent);}
再来是按钮的监听事件

findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {try {load();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}});
跳转后的页面显示HTML源码

textView = (TextView)findViewById(R.id.content);Intent intent = getIntent();textView.setText(intent.getStringExtra("content"));

最后别忘了在AndroidMainFest.xml里加上网络访问权限

    
改完之后,我迫不及待的跑起来,没有成功,抛出异常,debug连接失败

Android客户端制作之连接URL_第1张图片Android客户端制作之连接URL_第2张图片

刚开始以为是网络问题,或者是我代买改错的问题,在群里问了几次,说是我没有加网络访问的权限,问了几次没有结果,自己便问度娘,给出了这样的说法

从 Android 2.3 开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。

在onCreate的方法里加上下面代码

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O.penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log.build());StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects() //探测SQLite数据库操作.penaltyLog() //打印logcat.penaltyDeath().build()); 
我抱着试试看的心态,加上之后,也没有成功,我彻底崩溃了!闲着无聊,看着eclipse的属性,发现我用的是jdk1.7,我再想是不是版本的问题,我便装了个1.6的,用1.6的来跑一下,竟然成功了!!!

这样的问题,我也是醉了,各种版本的问题!

将源码奉上!下载

更多相关文章

  1. Android 手表设计规范(来源于网络)
  2. Android判断设备网络连接状态,并判断连接方式
  3. Android监听网络的变化
  4. Android与.Net交互模拟用户屏幕操作添加APN和网络4G/3G切换
  5. 检测android的网络链接状态
  6. android网络连接httpGet,遇到java.net.UnknownHostException: Ho
  7. Android当中显示网络图片
  8. Android MediaPlayer使用之网络访问异常

随机推荐

  1. 0414作业-$.get,$.post,$ajax与Vue基本术
  2. Google Play上出现了针对移动设备的恶意
  3. 用富兰克林学习写作的方法来研究计算机方
  4. 【小麦苗课堂】高可用培训(RAC+DG+OGG)
  5. 【优化】COUNT(1)、COUNT(*)、COUNT(常量
  6. 【故障处理】DBCA建库诡异问题处理--rac
  7. 容器 - Web服务示例(6)
  8. 【DG】DG备库报ORA-28000: the account i
  9. 【OCP最新题库解析(052)--题11】Which is
  10. 【DB笔试面试482】如何查询SCHEDULER JOB