HTTP状态码
- HTTP的响应状态码分为五类:
- 信息响应(100-199)
- 成功响应(200-299)
- 重定向(300-399)
- 客户端错误(400-499)
- 服务器错误(500-599)
- 常见的HTTP响应状态码
200-请求成功
301-资源或网页等被永久转移到其他URL
404-请求的资源不存在
500-内部服务器错误
获取状态码的代码
import okhttp3.Response;//执行请求Response rep = call.execute();//获取响应状态码int code = rep.code();//获取响应内容String content = rep.body().string();
获取二进制编码格式的内容
import okhttp3.Response;//执行请求Response rep = call.execute();//获取二进制编码格式的内容byte[] datas = rep.body.bytes();
解析JSON对象
JSON对象较为复杂,所以学会解析很重要。
放一个较为复杂的例子:
下面是一部分JSON格式的数据,要求是取出第一首歌的albumname的值,也就是刀郎Ⅲ。{"code": 0,"data": {"keyword": "西海情歌","priority": 0,"qc": [],"semantic": {"curnum": 0,"curpage": 1,"list": [],"totalnum": 0},"song": {"curnum": 50,"curpage": 1,"list": [{"albumid": 14880,"albummid": "0024RXz94OSKCa","albumname": "刀郎Ⅲ",
分析一下嵌套的顺序是data->song->list->0号元素->albumname; list是一个集合,集合里面放的是对象,所以要先取出第一个对象,也就是list的0号元素。
import com.alibaba.fastjson.JSON;import java.util.Map;import java.util.List;//先将其转换为Map对象,content是JSON格式的内容Map contentObj = JSON.parseObject(content,Map.class);//取出data,因为Map可以存储任何对象,所以要指定实际类型Map data = (Map)contentObj.get("data");//取出songMap song = (Map)data.get("song");//取出list。注意list的类型是ListList list = (List)song.get("list");//取出list集合的0号元素,0号元素是Map类型Map list0 = (Map)list.get(0);//最后取出albumname字段的值String albumname = (String)list0.get("albumname");

