网络应用

一.使用URL读取网络资源

    URL对象提供的openStream()方法可以读取该URL资源的InputStream

   eg:

       URL url = new URL("http://192.168.1.99/las/a.png");

       InputStream is = url.openStream();//打开该URL对应的资源的输入流

       Bitmap bitmap  =  BitmapFactory.decodeStream(is);//从InputStream中解析出图片

       imageView.setImageBitmap(bitmap);

       is.close();

       is = url.openStream();

       OutputStream os = openFileOutput("crazy.png",MODE_WORLD_READABLE);

       byte[] buff = new byte[1024];

       int   hasRead = 0;

       while((hasRead = is.read(buff))>0){  os.write(buff,0,hasRead); }

       is.close();

       os.close();

   该程序需要访问互联网,因此需要授予该程序访问网络的权限,uses-permission android:name = "android.permission.INTERNET",该图片会在手机文件系统的/data/data/包名/files/目录下生成crazy.png图片,该图片就是通过URL从网络上下载的图片

二.使用URLConnection 提交请求

  URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和URL之间的通信链接,程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源

  1.通过调用URL对象openConnection()方法来创建URLConnection对象

  2.设置URLConnection的参数和普通请求属性

  3.如果只是发送GET方式请求,使用connect方法简历和远程资源之间的实际连接即可;如果需要发送POST方式的请求,需要获取URLConnection实例对应的输出流来发送请求参数

  4.远程资源变为可用,程序可以访问远程资源的头字段,或通过输入流读取远程资源的数据


三.使用HttpClient

   1.创建HttpClient对象

    2.如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象

    3.如果需要发送请求参数,可调用HttpGet,HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,可调用setEntity(HttpEntity entity)方法来设置请求参数

    4.调用HttpClient对象的excute(HttpUriRequest request)发送请求,执行该方法返回一个HttpResponse.

    5.调用HttpResponse的getAllHeaders(),getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity方法可获取HttpEntity对象,该对象包装了服务器的响应内容,程序可通过该对象获取服务器的响应内容.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值