zoukankan      html  css  js  c++  java
  • Android网络通信(1):Android网络基础

    参考链接:http://www.cnblogs.com/qingblog/archive/2012/06/15/2550735.html

    Android平台浏览器采用了WeBKit引擎,这款名为Chorme Lite的Web浏览器拥有强大扩展特性,每个开发者都以为编写自己的插件,使得浏览器的功能更加完善。

    目前Android平台有3种网络接口,分别是:java.net.*(标准JAVA接口)、org.apache(Apache接口)和android.net.*(Android网络接口)。
    1、java.net.*(标准java接口)

    此接口提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。如:创建URL以及URLConnection/HttpURLConnection对象、设置连接参数、连接服务器、向服务器写数据、从服务器读取数据等通信。
    下例为常见java.net包的Http例子:
     

    /*使用java.net.*包连接网络*/
    //... 
    try{
        URL url = new URL("http://www.google.com")//定义地址
        HttpURLConnection http = (HttpURLConnection) url.openConnection();//打开连接
        int nRC = http.getResponseCode();//得到连接状态
        //因是连接网络,不免会出现一些异常,所以必须处理这些异常
        if(nRC == HttpURLConnection.HTTP_OK){
         InputStream is = http.getInputStream();//取得数据
         .....//处理数据
        }
       }catch(Exception e){
       }
    //...

    2、Apache接口
       Android提供的Apache HttpClient,它是一个开源项目,功能更加完善,为客户端的Http编程提供高效、最新、功能丰富的工具包。Android目前使用的是HttpClient4.0(org.apache.http.*),可将Apache看为目前流行的开源Web服务器,主要包括创建HttpClient以及Get/Post、HttpRequest等对象,设置连接参数,执行HTTP操作,处理服务器返回结果等功能。下例为使用android.net.http.*包的例子:

    /*使用android.net.http.*连接网络*/
    try{
        HttpClient hc = new DefaultHttpClient();//创建HttpClient,这里使用DefaultHttpClient表示默认属性
        HttpGet hg = new HttpGet("http://www.google.com");//HttpGet实例
        HttpResponse rp = hc.execute(hg);//连接
        if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
         InputStream is = rp.getEntity().getContent();
         .....//处理数据
        }
       }catch(IOEeception e){
       }


    3、Android网络接口
       android.net.*包实际是通过Apache中HttpClient的封装来实现的一个HTTP编程接口,同时还提供了Http请求队列管理以及Http连接池管理,以提高并发请求情况下(如装载网页时)的效率
       还包括 网络状态监视等接口,网络访问的Socket,常用的Uri类以及有关WiFi相关的类等等。
       下例为最简单的Socket连接
     

    /*使用android中的socket连接网络*/
    //... 
     try{
        InetAddress ia = InetAddress.getByName("192.168.1.110");//IP地址
        Socket sk = new Socket(inetAddress,61203,true);//端口
        InputStream is =sk.getInputStream();//得到数据
        OutputStream os = sk.getOutputStream();
        .....//数据处理
        os.close();
        is.close();
        sk.close();
       }catch(UnknownHostException e){
       }catch(IOException e){
       } 
    //...
    作者:快乐出发0220 ;Android群:151319601 ; Linux群:96394158 ;转载请注明出处 http://klcf0220.cnblogs.com/ !!!
  • 相关阅读:
    python排序函数sort()与sorted()区别
    python中lambda的用法
    Python中如何获取类属性的列表
    百度编辑器UEditor源码模式下过滤div/style等html标签
    【Flask】关于Flask的request属性
    python json.dumps() json.dump()的区别
    SQLAlchemy技术文档(中文版)(全)
    Flask中'endpoint'(端点)的理解
    SqlAlchemy个人学习笔记完整汇总-转载
    MySQL数据类型和常用字段属性总结
  • 原文地址:https://www.cnblogs.com/klcf0220/p/3084733.html
Copyright © 2011-2022 走看看