WebView:在应用中嵌入一个浏览器

 ......
webView = (webView)findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);  //设置支持JS
webView.setWebViewClient(new WebViewClient());  //跳转网页时,不打开系统浏览器,而是在当前webView中显示
webView.loadUrl("http://www.baidu.com");  //传入网址
......

webView需要在AndroidManifest.xml中声明权限

HTTP协议

  原理:客户端向服务端发送一条HTTP请求,服务器收到请求后返回数据给客户端,客户端再对数据进行解析和处理。

  发送请求:HttpURLConnection和HttpClient两种方式;GET和POST两种方法。(GET从服务器获取数据,POST提交数据给服务器)

  HttpURLConnection:

    1、创建实例:new一个URL对象,并传入目标网络地址,调用openConnection()方法。

 URl url = new URL("http://www.baidu.com");
HttpURLConnection connection = (HttpURLConnection)rul.openConnection();

    2、设置方法:connection.setRequestMethod("GET");

      3、其他设置:连接超时、读取超时、消息头等。

    4、调用getInputStream()获取服务器返回的输入流,并读取:InputStream in = connection.getInputStream();

    5、调用disconnect():connection.disconnect();

  HttpClient(接口):

    1、创建:HttpClient httpClient = new DefaultHttpClient();

    2、设置方法:GET:

            HttpGet httpGet = new HttpGet("http://www.baidu.com");

            httpClient.execute(httpGet);

            POST:

            HttpPost httpPost = new HttpPost("http://www.baidu.com");

            //创建NameValuePair结合存放待提交的参数

            List<NameValuePair>parms = new ArrayList<NameValuePair>();  

            prams.add(new BasicNameValuePair("username","admin"));  

            prams.add(new BasicNameValuePair("password","123456"));

            //传入entity

            UrlEncodedFormEntity entity = new UrlEncodedEntity(parms,"utf-8");

            httpPost.setEntity(entity);

            httpClient.execute(httpPost);

    3、返回HttoResponse对象,取出状态码:if(httpResponse.getStatusLine().getStatusCode()==200){......}

 if(httpResponse.getStatusLine().getStatusCode()==200){
HttpEntity entity = httpResponse.getEntity();
String response = EntityUtils.toString(entity,"utf-8"); //含有中文需要指定字符集为utf-8
Message message = new Message();
meesage.what = SHOW_RESPONSE;
message.obj = response.toString();
handler.sendMessage(message);
}

解析xml:

  1、Pull解析

 ......
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();  //获得XmlPullParserFactory对象
XmlPullParser xmlPullParser = factory.newPullParser();  //获得XmlPullParser对象
xmlPullParser.setInput(new StringReader(xmlData));  //传入xml数据进行解析
......

  2、Sax解析

  新建一个类继承DefaultHandler,并重写5个父类方法:startDocument()、startElement()、characters()、endElement()、endDocument()

 ......
SAXParserFactory factory = SAXParserFactory.newInstance();  //获得SAXParserFactory对象
XMLReader xmlReader = factory.newSAXParser().getXMLReader();  //通过工厂获取XMLReader对象
ContentHandler handler = new ContentHandler();  
xmlReader.setContentHandler(handler);  //将handler对象设置到xmlReader中
xmlParser.parse(new InputSource(new StringReader(xmlData)));  //调用parse()解析
......

解析JSON

  体积小,省流量

  1、JSONObject解析

......
JSONArray jsonArray = new JSONArray(jsonData); for(int i=0;i<jsonArray.length;i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
String version= jsonObject.getString("version");
}
......

  2、GSON解析

  需要下载一个gson的jar包放到libs目录下

  将一段JSON格式的字符串自动映射成一个对象。

......
Gson gson = new Gson();
List<App> appList =gson.fromJson(jsonData,new TypeToken<List<App>>(){}.getType());
for(App app:appList){
......
}
......

  

              

网络HTTP协议的更多相关文章

  1. ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-tcp zmq_tcp(7)          ØMQ Manual - ØMQ/4.1.0 Name zmq_t ...

  2. TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议

    原文地址:http://hi.baidu.com/albyuyrgqgbbhoq/item/65006d2d002ab33195f62ba1 TCP/IP(Transmission Control P ...

  3. 浅探网络1---tcp协议详解(三次握手和四次挥手)

    TCP协议是网络多层协议中运输层的最重要的协议之一,运输层是两台主机的进程之间的通信.除了TCP还有一个是UDP协议(用户数据包协议) TCP全称是Transmission Control Proto ...

  4. ylbtech-协议-网络-安全协议:HTTPS

    ylbtech-协议-网络-安全协议:HTTPS HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext ...

  5. 网络编程协议(TCP和UDP协议,黏包问题)以及socketserver模块

    网络编程协议 1.osi七层模型 应用层  表示层  会话层  传输层  网络层  数据链路层  物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...

  6. IEEE1588精密网络同步协议(PTP)

    1  引言 以太网技术由于其开放性好.价格低廉和使用方便等特点,已经广泛应用于电信级别的网络中,以太网的数据传输速度也从早期的10M提高到100M,GE,10GE.40GE,100GE正式产品也于20 ...

  7. 网络编程协议(TCP和UDP协议,粘包问题)以及socketserver模块

    网络编程协议 1.osi七层模型 应用层  表示层  会话层  传输层  网络层  数据链路层  物理层 2.套接字 socket 有两类,一种基于文件类型,一种基于网络类型 3.Tcp和udp协议 ...

  8. tcp/ip (网络通讯协议)

    介绍 TCP: 传输控制协议, IP: 网际协议, TCP/IP: 供已连接互联网的计算机之间进行通信的通信协议 在tcp/ip内部 , 包含一系列处理数据通信的协议: tcp.udp.icmp.dh ...

  9. 协议-网络-安全协议:SSH(安全外壳协议)

    ylbtech-协议-网络-安全协议:SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立 ...

  10. Raknet是一个基于UDP网络传输协议的C++网络库(还有一些其它库,比如nanomsg,fastsocket等等)

    Raknet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务.通常情况下用于游戏,但也可以用于其它项目. Raknet有以下好处: 高性能 在同一台计算机 ...

随机推荐

  1. ACM集训的1B。。。。黑色星期五。。。。2333333

    题目: 印象中有好多个13号是星期五,13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900 ...

  2. Hyper-V 与Broadcom网卡兼容问题

    最近在测虚拟机时,碰到一个网卡和Hyper-V不兼容问题,现在共享给大家参考,希望对大家有帮忙. 故障描述: Dell R720 Windows 2012操作系统下的Hyper-V环境后,虚拟机网络速 ...

  3. iOS开发路线简述

    1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode.MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推 ...

  4. Python之路----------time模块

    时间模块是常用的模块 一.time模块 import time print(time.clock())#返回处理器时间,3.3开始已经屏蔽. print(time.altzone)#返回与UTC时间差 ...

  5. 关于C#垃圾回收

    1.C#垃圾收集器(GC)原理 在C#中托管的资源是无法由程序员管理的,创建销毁都要通过GC来执行.但垃圾收集器有个特点,它是懒惰的,它并不会在变量出了作用域和生命期后立即回收,而是在它认为适当的时候 ...

  6. delphi之TDataset

    最近遇到了很多问题,现在做一下总结. 字符串处理: 字符串相加 var S1, S2: String; begin S1 := Concat('A', 'B'); // 连接两个字符串,S1变量等于A ...

  7. Android出现java.net.SocketException: Permission denied报错

    是由于权限问题导致的,在manifests中找到AndroidManifest.xml 在manifest节点下新增 <uses-permission android:name="an ...

  8. paper 115:常见的概率分布(matlab作图)

    一.常见的概率分布 表1.1 概率分布分类表 连续随机变量分布 连续统计量分布 离散随机变量分布 分布 分布 二项分布 连续均匀分布 非中心 分布 离散均匀分布 (Gamma)分布 分布 几何分布 指 ...

  9. 前端 时间个性化 插件 jquery.timeago.js

    关键词 : 时间格式化 刚刚 N分钟前 N小时前 N天前 N月前 N年前 MM-dd hh:mm  或者  yyyy-MM-dd 前端: <span class="time" ...

  10. [Android] 修改ImageView的图片颜色

    有两种方法: 方法1: ImageView imageView = (ImageView) findViewById(R.id.arrow_image); Drawable tipsArrow = i ...