5【学校教学系统】获取通知详细内容

我们在第四节可以做到获得所有的通知。我们可以得到通知的标题,通知的id,发布者,发布时间,关键字。那么接下来我们要获得通知的详细内容。

通知详细内容的获得一点难得地方在于。通知的内容是多变的。
我目前见到的类型包括.纯文字,表格,附件下载。怎么才能实现这些内容呢?我感觉到了一点压力,因为这个太琐碎了。但是还是要做的。

好吧我深深感觉到了这个社会的恶意。通知的详细内容实在是太复杂。接下来我需要先把通知的详细内容下载下来

这里写图片描述
其实获得内容就是一个get。难得是怎么分析里面的内容。

我们得到html文件后要分析里面那个是通知内容。有多少个下载然后。通知内容里面还有用html写的文字大小和颜色,还有超链接。太难了哎。通知内容我们可以用普通的正则表达式把里面取出来。虽然里面会有一些颜色字体之类的东西,不过鉴于安卓有空间可以识别这些html,我们可以保留,在此略过。

那么我们可以看看判断附加的下载
这里写图片描述
看看上面就是一个带两个下载项的通知。
这里写图片描述
这里获取的是post方式。可以看看post请求
这里写图片描述
这里就是请求。上面有规律可循
每个附加也是有一个id的。然后post的时候拔这个东西放到eventtarget里面就行了。不过下面的东西也是变动的。等会我要试试用一个窗口的state只改变id获取另一个窗口的东西行不行。。

我们来看返回头
这里写图片描述

这里可以看到。头文件告诉我们下载的东西要是附加的方式,然后文件就是那个文件名。文件的内容是通过post返回的输出流给的,是一个二进制数据,所以我们要用新建一个文件,然后获取流,用二进制的方式向文件写入。然后获得的就是下载下来的文件。。。

写到这里我还是很心虚的,万一如果不能用一个通知的state变量获取另一个通知的附件。那么我这个程序就无法实现获得下载附件的功能。不过我相信这么不好的事情不会发生在我身上的。祈祷吧。

令我最不想看到的事情发生了。这个东西是根据state变量判断你下载的哪个文件的。不过就当我要放弃的时候。我发现在通知的html文件里面居然有这个state文件的代码
这里写图片描述
所以。我们可以在html里面把这个东西解析出来。然后放到state变量里面进行请求。。。

获得文件的二进制代码并且存在一个文件的代码如下。

String fileName="d:\\1.xls";
        File file = new File(fileName);
        file.createNewFile();
        FileOutputStream out=new FileOutputStream(file);

        HttpURLConnection conn =webServer.post(URL,param,headers);

        InputStream in = conn.getInputStream();


        int b = 0;  
        byte[] buffer = new byte[1024*10]; 
        b = in.read(buffer);  
        while (b != -1){  

            out.write(buffer,0,b);  
            b = in.read(buffer); 
        }  

这样我们的通知下载功能和通知的详细内容就能实现了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值