本文已参与「新人创作礼」活动,一起开启掘金创作之路
Android的数据一般都是存储在后端里 而和后端通过http链接传输数据 而数据一般是使用java.net包里来实现获取数据的
具体的使用如下:
public void lj() throws Exception {
String path ="http://192.168.1.107:8081/findNote";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
InputStream is = conn.getInputStream();
byte[] data = readInputStream(is);//得到html的二进制数据
String html = new String(data, "UTF-8");
JSONArray note = JSON.parseArray(html);//单条是这个,list是这个json.parseArray()
//2、循环遍历这个数组
for(int i=0;i<note.size();i++){
//3、把里面的对象转化为JSONObject
JSONObject job = note.getJSONObject(i);
// 4、把里面想要的参数一个个用.属性名的方式获取到
String notet = job.getString("notetime");
String time = job.getString("note");
notetime.add(time);
notelist.add(notet);
System.out.println(notelist) ;
}
System.out.println(list) ;
//sendRequestOkHttp();
Note note1=new Note();
note1.setNote("888");
String json = JSON.toJSON(note1).toString();
Log.v("", String.valueOf(note));
}
public static byte[] readInputStream(InputStream inStream) throws Exception{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len=inStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, len);
}
inStream.close();
return outStream.toByteArray();
首先我们先在后端得到一个链接 来获取Json数据 一般前后端交互都是用json 和xml 和protobuf等这几种主流的交互 但在这里我们使用了比较常用的json
我们先创建一个变量 把链接字符串赋值给变量 然后用URL url = new URL(path);来获取一个URL对象
然后用这个对象来打开对网址的链接 然后对打开的链接对象设置连接超时时间 和设置请求方式 一般有GET POST PUT 和 DELETE 四个 感兴趣的读者请自行百度
然后我们再通过链接对象获取输入流 然后通过我们写的一个方法去把输入流转换为我们输入的字节数组
然后把字节数组转换成UTF—8格式的字符串 然后通过JSON.parseArray(html);把获取的字符串转成json数组 然后把json数组里的json对象一个个通过for循环的方法获取出来 至此就完成了通过http获取json数据了