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

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

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

HTTP协议

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

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

  HttpURLConnection:

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

  1. URl url = new URL("http://www.baidu.com");
  2. 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){......}

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

解析xml:

  1、Pull解析

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

  2、Sax解析

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

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

解析JSON

  体积小,省流量

  1、JSONObject解析

  1. ......
  2. JSONArray jsonArray = new JSONArray(jsonData);
  3.  
  4. for(int i=0;i<jsonArray.length;i++){
  5. JSONObject jsonObject = jsonArray.getJSONObject(i);
  6. String id = jsonObject.getString("id");
  7. String name = jsonObject.getString("name");
  8. String version= jsonObject.getString("version");
  9. }
  10. ......

  2、GSON解析

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

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

  1. ......
  2. Gson gson = new Gson();
  3. List<App> appList =gson.fromJson(jsonData,new TypeToken<List<App>>(){}.getType());
  4. for(App app:appList){
  5. ......
  6. }
  7. ......

  

              

网络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. CentOS 7 安装 nginx

    一.安装nginx依赖lib库: 1.yum install gcc-c++ -y 2.yum install pcre pcre-devel -y 3.yum install zlib zlib-d ...

  2. mybatis比较数字或者单字母

    http://blog.csdn.net/alibert/article/details/50177017 <if test="req.queryType == '3'.toStrin ...

  3. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  4. C++之路进阶——poj3461(Oulipo)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 35694   Accepted: 14424 Descript ...

  5. 转Windows Phone8.1 获取手机唯一识别码

    转:http://www.dotblogs.com.tw/martinlau17/archive/2014/07/21/146020.aspx 因小弟比較懶,上次不小心 清空了所有文章 現在重寫了XD ...

  6. Djunit工作记录Mock时出现为null的情况setReturnValueAt|MockObjectManager.addReturnValue不起作用

    最近工作要对代码进行局部测试并编写测试文档,可是偶的环境还没搞好哦(开始不太乐意直接请教前辈,还是选择自己先搞一下了)经过电脑重装jdk ,eclipse,djunit工具包ver***,等等确定不是 ...

  7. VB中键盘每个按键所对应的具体数值是?

    键码常数 值 描述 vbKeyLButton 1 鼠标左键 vbKeyRButton 2 鼠标右键 vbKeyCancel 3 CANCEL 键 vbKeyMButton 4 鼠标中键 vbKeyBa ...

  8. owin建控制台应用程序步骤

    1.  Install-Package Microsoft.AspNet.WebApi.OwinSelfHost 2.  建立OWIN Startup类 public void Configurati ...

  9. PL/SQL Developer连接Oracle 11g在Win8 64位系统下乱码

    PL/SQL Developer在64位系统上连接Oracle,需要安装32位Oracle client客户端,使用后,发现操作数据库出现乱码的情况.经过查找资料,解决此问题,方法如下: 需要在系统的 ...

  10. socket网络编程

    一.客户端/服务器架构 C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(Web服务) 最常用的软件服务器就是Web服务器,一台机器里放了一些网页或Web应用程序,然后启动服务,这样 ...