1、图片

public void look(View v) {
String path = et_path.getText().toString(); try {
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if(conn.getResponseCode() == 200){
InputStream is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
if(bitmap != null){
iv.setImageBitmap(bitmap);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

2、网页源码

public void look(View v) {
String path = et_path.getText().toString(); try {
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET");
conn.setConnectTimeout(5000); if(conn.getResponseCode() == 200){
InputStream is = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0; //把流转化成文本信息
while((len = is.read(buffer)) != -1){
bos.write(buffer,0,len);
} String html = bos.toString();
html_tv.setText(html); is.close();
bos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

3、Xml形式的数据

public List<HeaderNew> getHeaderNews(Context context) throws Exception{

		String path = context.getResources().getString(R.string.serverurl);

		URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET");
conn.setConnectTimeout(5000); if(conn.getResponseCode() == 200){
InputStream is = conn.getInputStream();
return parserHeaderNews(is);
} return null;
} public List<HeaderNew> parserHeaderNews(InputStream is) throws Exception {
List<HeaderNew> headerNews = null;
HeaderNew headerNew = null; XmlPullParser parser = Xml.newPullParser(); parser.setInput(is,"UTF-8"); int eventType = parser.getEventType(); while(eventType != XmlPullParser.END_DOCUMENT){
switch(eventType){
case XmlPullParser.START_TAG:
if("HeaderNews".equals(parser.getName())){
headerNews = new ArrayList<HeaderNew>();
}else if("HeaderNew".equals(parser.getName())){
headerNew = new HeaderNew();
}else if("image".equals(parser.getName())){
headerNew.setImage(parser.nextText());
}else if("title".equals(parser.getName())){
headerNew.setTitle(parser.nextText());
}else if("content".equals(parser.getName())){
headerNew.setContent(parser.nextText());
}else if("count".equals(parser.getName())){
headerNew.setCount(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("HeaderNew".equals(parser.getName())){
headerNews.add(headerNew);
headerNew = null;
}
break;
default:
break;
} eventType = parser.next();
} return headerNews;
}

4、抓取JSON格式的数据

抓取JSON格式的数据是以抓取网页源码为基础的。

public List<HeaderNew> getHeaderNewsFromJSON(Context context) throws Exception{
List<HeaderNew> headerNews = new ArrayList<HeaderNew>(); String path = context.getResources().getString(R.string.serverurl_json); URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if(conn.getResponseCode() == 200){
InputStream is = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while((len = is.read(buffer)) != -1){
bos.write(buffer,0,len);
}
String json = bos.toString(); JSONArray jsonArray = new JSONArray(json); for(int i = 0 ; i < jsonArray.length() ; ++i){
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
HeaderNew headerNew = new HeaderNew(); headerNew.setImage(jsonObject.getString("image"));
headerNew.setTitle(jsonObject.getString("title"));
headerNew.setContent(jsonObject.getString("content"));
headerNew.setCount(jsonObject.getString("count")); headerNews.add(headerNew);
}
} return headerNews;
}

5、抓取Xml形式的数据与抓取JSON形式的数据的区别

构建时的区别:

1)Xml形式的数据

服务器端直接返回数据集合,由JSP来构建XML形式的数据

代码如下:

servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HeaderNewsService service = new HeaderNewsService();
List<HeaderNew> headerNews = service.getHeaderNews(); request.setAttribute("headerNews", headerNews);
request.getRequestDispatcher("/WEB-INF/page/headernewsxml1.jsp").forward(request, response);
}

jsp:

<?xml version="1.0" encoding="UTF-8"?>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page contentType="text/html; charset=utf-8" %>
<HeaderNews>
<c:forEach items="${headerNews}" var="headerNew">
<HeaderNew>
<image>${headerNew.image }</image>
<title>${headerNew.title }</title>
<content>${headerNew.content}</content>
<count>${headerNew.count}</count>
</HeaderNew>
</c:forEach>
</HeaderNews>

2)JSON形式的数据

在服务器端构造好JSON格式的数据。JSP页面直接显示即可。

代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { HeaderNewsService service = new HeaderNewsService();
List<HeaderNew> headerNews = service.getHeaderNews();
StringBuilder sb = new StringBuilder("["); for(HeaderNew headerNew : headerNews){
sb.append("{");
sb.append("image:").append("\"").append(headerNew.getImage()).append("\"").append(",");
sb.append("title:").append("\"").append(headerNew.getTitle()).append("\"").append(",");
sb.append("content:").append("\"").append(headerNew.getContent()).append("\"").append(",");
sb.append("count:").append("\"").append(headerNew.getCount()).append("\"");
sb.append("}");
sb.append(",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append("]"); String json = sb.toString();
request.setAttribute("json",json);
request.getRequestDispatcher("/WEB-INF/page/headernewsjson.jsp").forward(request,response);
}

JSP:

<%@ page contentType="text/html; charset=UTF-8" %>
${json}

附上JSON数据的格式:

[{ a : b , c : d }  , {.....}]

android端从服务器抓取的几种常见的数据的处理方式的更多相关文章

  1. android端向服务器提交请求的几种方式

    1.GET方式 其实GET方式说白了,就是拼接字符串..最后拼成的字符串的格式是: path ?  username= ....& password= ...... public boolea ...

  2. [python]初试页面抓取——抓取沪深股市交易龙虎榜数据

    [python]抓取沪深股市交易龙虎榜数据 python 3.5.0下运行 没做自动建立files文件夹,需要手动在py文件目录下建立files文件夹后运行 #coding=utf-8 import ...

  3. 抓取“矢量”的实时交通流量数据

    1. 引言 最近老师有一个需求,就是想要抓取实时的矢量交通流量数据来做分析,类似于百度地图,高德地图的"实时路况"那种.平时的网络抓取工作一般是抓取网页上现成的数据,但是交通流量数 ...

  4. Java服务器对外提供接口以及Android端向服务器请求数据

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...

  5. Android 7.0解决抓取不到https请求的问题

    问题:Android7.0系统,使用fiddler不能抓取https请求 解决方法:  1.在源码res目录下新建xml目录,增加network_security_config.xml文件 (工程名/ ...

  6. Android移动网络如何抓取数据包

    1)下载tcpdump工具 tcpdump(dump the traffic on a network)是Linux中强大的网络数据采集分析工具之一,可以将网络中传送的数据包头完全截获下来提供分析.它 ...

  7. Android MaoZhuaWeiBo开发Service抓取个人信息-2

    前面把基本的东西讲完了,之后就是数据的获取和解析显示出来了,那接下来我们就负责抓取数据的这块吧,首先我们须要 在清单文件中载入服务和活动 加入:. <activity android:name= ...

  8. Charles安装破解、抓取https请求及常见问题解决方法

    现在基本大部分网站都使用了https,所以要想抓到https的请求,首要任务是先有工具:charles.fiddler,先介绍下charles针对https请求的抓取方法,此方法兼容windows和m ...

  9. 如何抓取基于https协议的webservice数据包

    方法一:基于Fiddler2等第三方工具(需要在Java端禁用SSL安全检查) 原文拷贝自http://blog.csdn.net/zmxj/article/details/6327775,向原作者表 ...

随机推荐

  1. 设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)

    设计模式 ( 十五 ) 中介者模式Mediator(对象行为型) 1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各 ...

  2. Page的生命周期及相关事件苛

    (1)请求页面:页请求发生在页生命周期开始之前. (2)开始:在开始阶段,将设置页属性,如Request和Response.在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性 ...

  3. UVA1366-----Martian Mining------DP

    本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...

  4. 同步内核缓冲区 sync、fsync和fdatasync函数

    同步内核缓冲区 1.缓冲区简单介绍 人生三大错觉之中的一个:在调用函数write()时,我们觉得该函数一旦返回,数据便已经写到了文件里.可是这样的概念仅仅是宏观上的.实际上.操作系统实现某些文件I/O ...

  5. 高级UIKit-01(总结基础UIKit)

    总结: 如果相同的控件大于等于3个就拖成一个属性选用outlet Collection 提升局部变量的方法:传参或改变全局 创建CGImage对象要释放,因为ARC只会自动释放OC方法,这个是CG框架 ...

  6. 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

    原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class Zip ...

  7. [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收(转)

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是怎样在微信公众平台使用QQ表情, ...

  8. poj3070 Fibonacci 矩阵快速幂

    学了线代之后 终于明白了矩阵的乘法.. 于是 第一道矩阵快速幂.. 实在是太水了... 这差不多是个模板了 #include <cstdlib> #include <cstring& ...

  9. ZXing工具类v1.0

    package com.jadyer.util; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import jav ...

  10. 如何灵活使用 ActionBar, Google 音乐ActionBar 隐藏和显示效果

    ActionBar 的历史这里就不介绍了,相信大家都清楚:在一个 app 中,如果 ActionBar 运用的好,那么将会省去大量的代码,而且整个 app 效果也相当不错,大家有兴趣可以下载 goog ...