您的位置:首页 > 理论基础 > 计算机网络

Android---网络交互之客户端请求服务端资源

2010-11-25 16:31 260 查看
最近那个茫然啊,工作不如意,感情不如意,感觉事事不顺,在android上又荒废了些时日。最近因为想做一个APK,主要涉及到网络方面的应用,所以也开始学习之前没怎么涉及到的模块。

今天实现要实现的其实很简单,通过网络获取服务端一个文件(可以是txt、png、mp3等等),因为之前是做c#开发的,所以操起老本行,模拟一个服务器,通过url去获取服务器的一个资源,就这么简单,所以大家千万千万不要被吓着,没有什么post请求、没有什么get请求,也就是说没有验证直接获取,所有这些post、get通通不涉及。

Android中实现网络连接提供了三种接口以供我们使用:

1、标准java.net.*接口

2、org.Apache.*接口

3、android.net.*接口

我的示例就是使用第一种接口来实现,来实现从服务器下载一个txt文档,我们要实现这个功能要通过几个步骤实现

1、在sdcard中创建一个文件,将网络流保存为txt的最终文本文件

2、实现网络连接,获取网络流,保存到sdcard中的txt文件中

3、新建线程下载服务器txt文档

4、模拟一个web服务器(C#)

第一步工作实现过程:首先验证sdcard状态(是否载入并且是否可以读写),其次获得(新建)文件目录和新建txt文件,最后初始化一个FileOutputStream对象,他就是实现从数据流到文件的关键纽带,还有sdcard操作权限。

参考:http://tdq222.javaeye.com/blog/701962 代码:

代码

private Handler handler=new Handler(){
public void handleMessage(Message msg){
//提示用户下载完成
if(msg.what==1){
Toast.makeText(Main.this, "down succes", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(Main.this, "down fail", Toast.LENGTH_SHORT).show();
}
super.handleMessage(msg);
}
};

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("tag", "------------onclick");
//开启下载线程
Thread thread=new Thread(new downThread());
thread.start();
}

class downThread implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub
//下载资源
download();
Message msg=new Message();
msg.what=1;
handler.sendMessage(msg);
}
}


第四步就简单了,新建一个网站提供一个链接就ok了例如:http://localhost:7643/WebSite1/data/test.txt,但是有一点要注意,将

localhost换成10.0.2.2,这就是本机的意思吧(未确认),至此从服务器获取资源就实现了,打开DDMS中sdcard,把test.txt取出来,打开如图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐