Android|Android 基本 Web 技术
HTTP 协议
HTTP 协议的主要特点如下:
支持 C/S( 客户端 / 服务器) 模式
? 简单快速。 客户向服务器请求服务时, 只需传送请求方法和路径。
? 灵活。
无连接。
无状态。
HTTP 的 URL
http:// host[":"port][abs_path]
http 表示要通过 HTTP 协议来定位网络资源的 ; host 表示合法的 Internet 主机域名或者 IP 地址 ; port 指定一个端口号, 为空则使用默认端口 80 ; abs_path 指定请求资源的 URI( Uniform Resource Identifier, 通用资源标志符, 指 Web 上任意的可用资源)。
HTTP 报文是面向文本的, 报文中的每一个字段都是一些 ASCII 码串, 各个字段的长度是不确定的。
HTTP 有两类报文: 请求报文和响应报文。
HTTP 请求报文
一个 HTTP 请求报文由请求行、 请求报头、 空行和请求数据 4 个部分组成
( 1)请求行由请求方法字段、 URI 字段和 HTTP 协议版本字段组成, 它们之间用空格分隔。
格式如下:
Method Request-URI HTTP-Version CRLF
例如: GET /form.html HTTP/1.1 (CRLF)
其中 Method 表示请求方法; Request-URI 是一个统一资源标识符; HTTP-Version 表示请求的 HTTP 协议版本; CRLF 表示回车和换行( 除了作为结尾的 CRLF 外, 不允许出现单独的 CR 或 LF 字符)。
( 3)空行
最后一个请求头之后是一个空行, 发送回车符和换行符, 通知服务器以下不再有请求头。
( 4) 请求数据
请求数据不在 GET 方法中使用, 而是在 POST 方法中使用。
【Android|Android 基本 Web 技术】HTTP 响应报文
HTTP 响应报文也是由 4 个部分组成的, 分别是 : 状态行、 消息报头、 空行、 响应正文
( 1) 状态行
状态行的格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
例如: HTTP/1.1 200 OK (CRLF)
其中, HTTP-Version 表示服务器 HTTP 协议的版本 ; Status-Code 表示服务器发回的响应状态代码; Reason-Phrase 表示状态代码的文本描述。
文章图片
Paste_Image.png
( 3) 空行
这行是空的。
( 4) 响应正文
响应正文就是服务器返回的资源的内容
JSON
指的是javaScript对象表示法,轻量级的文本数据交换格式
描述数据结构有两种形式
名称/值 name:value
值的有序列表 name:[value,value]
json数据解析
(1){"name":"Lili"}
JSONObject demonJson = new JSONObject(jsonString)
String s = demoJson.getString("name");
(2){"number":[1,2,3]}
JSONObject demonJson = new JSONObject(jsonString);
JSONArray numberList = demonJson.getJSONArray("number");
SOAP
简单对象访问协议,基于XML标准,主要用于web服务,使网页服务器从XML数据库中提取数据时,无需格式化页面
SMTP,HTTP,HTTPS可以传输SOAP消息,一个普通的XML文档
使用流程
1.导入ksoap2包
2.指定WebService的命名空间和调用方法名
SoapObject request = new SoapObject(http://service,"getName");
3.设置调用方法的参数值
Request.addProperty("param1","value");
4.生成调用WebService方法的SOAP请求信息
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VERl1);
Envelope.bodyOut = request;
5.创建HttpTransportSE对象
HttpTransportSE ht = new HttpTransportSE("http://fy.webxml.com.xxxx");
6.使用call方法调用webService方法
ht.call(null,envelope);
7.使用getResponse方法获得WebService的返回结果
SoapObject soapObject = (SoapObject)envelope.getResponse();
8.解析结果
HTML
android平台上推荐使用Jsoup解析器解析HTML文档
推荐阅读
- android第三方框架(五)ButterKnife
- 做一件事情的基本原理是什么()
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- dubbo基本认识
- android|android studio中ndk的使用
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库