1>从网络上获取数据(图片,网页,xml,json等)
A.从网络上获取一张图片,然后显示到手机上
这是在java中
public class ImageRequest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
URL url = new URL("http://i3.itc.cn/20100707/76c_0969b700_d5b4_41cd_8243_9b486be92cc4_0.jpg");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
byte[] data = readInputStream(inStream);//得到图片的二进制数据
File imageFile = new File("itcast.jpg");//保存在项目下
FileOutputStream outStream = new FileOutputStream(imageFile);
outStream.write(data);
outStream.close();
}
public static byte[] readInputStream(InputStream inStream) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];//定义一个1k的缓冲区
int len = 0;
while( (len=inStream.read(buffer)) != -1 ){//返回的是实际的字节数
outStream.write(buffer, 0, len);//将缓冲区的数据写入到内存中
}
inStream.close();
return outStream.toByteArray();
}
}
在手机上
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String path = pathText.getText().toString();
try {
byte[] data = ImageService.getImage(path);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);//生成位图
imageView.setImageBitmap(bitmap);//显示图片
} catch (Exception e) {
Toast.makeText(ImageShowActivity.this, R.string.error, 1).show();
Log.e(TAG, e.toString());
}
}});
<!-- 访问网络的权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
public class StreamTool {
/**
* 从输入流中获取数据
* @param inStream 输入流
* @return
* @throws Exception
*/
public static byte[] readInputStream(InputStream inStream) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len=inStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}
-----------------------------------------------------------------------------------------------------
public class ImageService {
public static byte[] getImage(String path) throws Exception {
URL url = new URL("http://i3.itc.cn/20100707/76c_0969b700_d5b4_41cd_8243_9b486be92cc4_0.jpg");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream();//通过输入流获取图片数据
return StreamTool.readInputStream(inStream);//得到图片的二进制数据
}
}
B.从网络上获取网页(用的比较少)
byte[] data = readInputStream(inStream);//得到网页的二进制数据
String html = new String(data,"gb2312");
C.从网络上获取xml数据,然后显示在手机上
android手机模拟器本身绑定在模拟器上,所以访问web service的时候不能用local host
或者用127.0.0.1。而应该使用局域网上的ip地址。
public class VideoService {
/**
* 获取最新的视频资讯
* @return
* @throws Exception
*/
public static List<Video> getLastVideos() throws Exception{
String path = "http://192.168.1.100:8080/videoweb/video/list.do";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
return parseXML(inStream);
}
/**
* 解析服务器返回的协议,得到视频资讯
* @param inStream
* @return
* @throws Exception
*/
private static List<Video> parseXML(InputStream inStream) throws Exception{
List<Video> videos = null;
Video video = null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream, "UTF-8");
int eventType = parser.getEventType();//产生第一个事件
while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
videos = new ArrayList<Video>();
break;
case XmlPullParser.START_TAG:
String name = parser.getName();//获取解析器当前指向的元素的名称
if("video".equals(name)){
video = new Video();
video.setId(new Integer(parser.getAttributeValue(0)));
}
if(video!=null){
if("title".equals(name)){
video.setTitle(parser.nextText());//获取解析器当前指向元素的下一个文本节点的值
}
if("timelength".equals(name)){
video.setTime(new Integer(parser.nextText()));
}
}
break;
case XmlPullParser.END_TAG:
if("video".equals(parser.getName())){
videos.add(video);
video = null;
}
break;
}
eventType = parser.next();
}
return videos;
}
}
D.从网络上获取json数据,然后显示在手机上
public class VideoService {
/**
* 获取最新的视频资讯
* @return
* @throws Exception
*/
public static List<Video> getJSONLastVideos() throws Exception{
List<Video> videos = new ArrayList<Video>();
String path = "http://192.168.1.100:8080/videoweb/video/list.do?format=json";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
byte[] data = StreamTool.readInputStream(inStream);
String json = new String(data);
JSONArray array = new JSONArray(json);
for(int i=0 ; i < array.length() ; i++){
JSONObject item = array.getJSONObject(i);
int id = item.getInt("id");
String title = item.getString("title");
int timelength = item.getInt("timelength");
videos.add(new Video(id, title, timelength));
}
return videos;
}
}
相关推荐
android get和post 获取json xml数据
是我从别的地方获取的 具体介绍了安卓下面的 xml方式和json方式传递数据
【正文】 一、XML和Json数据的引入: 通常情况下,每个需要访问网络的应用程序都会有一个自己的服务器,我们可以向服务器提交数据,也可以从服务器获取数据。
Android请求服务器和解析数据,包含8个实例代码:android_json,android访问网络返回的XML数据并且进行解析,httpclient获取到JSON数据并展示到ListView,Json数据解析服务器端加客户端代码等等。
android_news_app 使用方法:将全部项目导入,右键fast-easy-reader 选择buid path ->config Buid Path,选择Android,将需要的库添加,clean一下运行。
在数据交换上,主要采用JSON作为从服务器获取的信息的格式,通过对JSON字符串的处理,以获取需要的数据。本系统采用Android系统集成的轻量级嵌入式数据库SQLite作为数据库引擎,以实现前后台数据交互。 关键词:个人...
本项目整合了从网络获取字符串数据,json数据,xml数据,还有图片数据的几种方法。另外添加了使用Gson解析json数据的方法。
当您的 Android 应用程序需要与您的服务器交换数据时,JSON 是 XML 的最佳替代方案。 示例 JSON:以下是我们将在本教程中解析的示例 JSON。 这是一个非常简单的 JSON,它为我们提供了联系人列表,其中每个节点都...
6.17 ImageView从网络上获取图像 6.18 DatePicker输入日期控件的使用 6.19 时间对话框的使用 6.20 ProgressBar进度条的使用 6.21 RatingBar评分控件的使用 6.22 ScrollView垂直滚动控件的使用 6.23 ...
第一步:根据指定的URL从google 服务器上获得包含地址的json格式的数据(其还提供xml格式的,但json解析效率比xml高) private static StringBuffer getJSONData(String urlPath){ try { URL url = new URL(urlPath...
6.5.2 使用Content Resolver获取数据 6.6 小结 练习 第7章 多线程及消息处理 7.1 Android多线程概述 7.1.1 创建线程 7.1.2 操作线程 7.2 UI线程与非UI线程 7.3 多线程中的常用类 7.3.1 Handler类 ...
2> 网络--获取数据(图片、网页、xml、Json等) 3> 如何把数据通过HTTP协议提交到网络上的Web应用(get / post ) 数据大于2k的时候 A.通过Get方式提交参数给Web应用 B.通过Post方式提交参数给Web应用 C.使用...
异步网络请求:利用Retrofit或OkHttp等网络库发起异步请求,从易网新闻服务器获取新闻数据,避免阻塞主线程,确保流畅的用户体验。 数据解析与展示:将获取的新闻数据(通常为JSON格式)进行解析,并使用适配器...
android天气预报demo,从中国天气网获取xml数据和json数据。解析xml文件和json数据。
getAndroidID : 获取设备 AndroidID getMacAddress : 获取设备 MAC 地址 getManufacturer : 获取设备厂商 getModel : 获取设备型号 shutdown : 关机 reboot : 重启 reboot2Recovery : 重启到 recovery reboot2...
2> 网络--获取数据(图片、网页、xml、Json等) 3> 如何把数据通过HTTP协议提交到网络上的Web应用(get / post ) 数据大于2k的时候 A.通过Get方式提交参数给Web应用 B.通过Post方式提交参数给Web应用 C.使用...
两者相配合,实现了快速从网络获取数据并显示:只需两句话就能完成 加载网络数据后绑定数据并显示 public Call<HttpResult<List<Model>>> onLoadListHttpRequest(); public void setItemLayout(int item...
第8章 Android的数据存储和IO 306 8.1 使用SharedPreferences 307 8.1.1 SharedPreferences与Editor 简介 307 8.1.2 SharedPreferences的存储 位置和格式 308 8.1.3 读、写其他应用Shared ...
|--文件之从服务器下载 |--文件之拷贝文件至某个目录 |--文件之指定编码读写文件 |--文件之释放Assets下的文件到应用的File目录 |--文件之随机存储RandomAccessFile |--文件使用时间排序 |--文件复制粘贴 |--文件...