使用Java的API发起网络请求
前面我们了解了Http协议
android应用是用java编写的,到framework层还是用java编写的,而android的网络请求,其实是对java的网络请求进行了封装。
在android6.0以前,有apache的HttpClient,使用简单,就像德芙那般丝滑!
但是
所以,如果同学们以后打开别人的项目,报错,没有httpclient的时候
你就要记得,加上这个了
android {
useLibrary 'org.apache.http.legacy'
}
好吧,推荐我们使用HttpURLConnection,我们就看看吧,
这是官方的文档地址:
所以我们先看看java是如何进行网络请求的。
Java的API文档在后面附录里
直接上代码吧:
private static void loadData(String baseUrl, Map<String, String> params) {
try {
//拼接URL
StringBuilder sb = new StringBuilder(baseUrl);
if (params.size() > 0) {
sb.append("?");
Set<Map.Entry<String, String>> entries = params.entrySet();
for (Map.Entry<String, String> entry : entries) {
sb.append(entry.getKey());
sb.append("=");
sb.append(entry.getValue());
}
}
String resultUrl = sb.toString();
URL url = new URL(resultUrl);
//打开连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
//设置请求超时时间
urlConnection.setConnectTimeout(1000);
urlConnection.setRequestProperty("accept", "*/*");
urlConnection.setRequestProperty("connection", "keep-alive");
urlConnection.setRequestProperty("Accept-Language", "zh-CN,zh");
//开始连接
urlConnection.connect();
//获取返回内容
Map<String, List<String>> headerFields = urlConnection.getHeaderFields();
Set<Map.Entry<String, List<String>>> entries = headerFields.entrySet();
for (Map.Entry<String, List<String>> entry : entries) {
System.out.println(entry.getKey() + " === " + entry.getValue());
}
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
调用:
public static void main(String[] args) {
Map<String, String> params = new HashMap<>();
loadData("https://www.sunofbeach.net", params);
}
运行结果:
可以看到我们把网页的内容获取到了。
我们再获取一个json数据试试
public static void main(String[] args) {
Map<String, String> params = new HashMap<>();
//loadData("https://www.sunofbeach.net", params);
//获取动态列表
// https://www.sunofbeach.net/content/content/moment/list/1153952789488054272/1
loadData("https://www.sunofbeach.net/content/content/moment/list/1153952789488054272/1", params);
}
获取到的结果:
复制出来,格式化一下
你看,这数据不就回来了嘛!
我们先搞定请求先,然后转到android上,把数据请求回来,显示在UI上。
android上使用java的API请求数据
网络配置
声明网络权限,还是要滴
<uses-permission android:name="android.permission.INTERNET" />
最近很多同学遇到网络请求的各种问题,权限配置了,还是无法发起请求。这个其实可以去看log,log会告诉你为什么不给你请求。
也有同学说在版本27的时候可以,到了29上就不可以了。
遇到这些问题怎么办呢?可以去看文档
在文档的左侧则是各个版本,每个版本的变更,有相关的说明。重点看应用行为变更。
比如说:Android8.0的应用行为变更
关于网络访问的版本差异,请同学们查看这篇文章
Android网络访问不同版本的差异,看完这篇文章你就茅厕顿开了
请求数据
请求的代码,我省略了一些请求头信息,直接就请求内容。
package com.sunofbeaches.javanetdemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startRequest(View view) {
new Thread(new Runnable() {
@Override
public void run() {
loadData();
}
}).start();
}
private void loadData() {
try {
URL url = new URL("https://www.sunofbeach.net/content/content/moment/list/1153952789488054272/1");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
int responseCode = httpURLConnection.getResponseCode();
if(responseCode == 200) {
httpURLConnection.setConnectTimeout(1000);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
String line;
while((line = bufferedReader.readLine()) != null) {
Log.d(TAG,line);
}
bufferedReader.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
请求回来的数据
再用Gson将结果格式化,用列表显示不在UI上。
数据请求回来显示在UI上
MainActivity代码如下:
package com.sunofbeaches.javanetdemo;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
public static final int WHAT_LOADER_RESULT = 1;
private static Handler mHandler;
private RecyclerView mResultList;
private ResultAdapter mResultAdapter;
@SuppressLint("HandlerLeak")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case WHAT_LOADER_RESULT:
MomentItem result = (MomentItem) msg.obj;
refreshResultList(result);
break;
}
}
};
initView();
}
private void initView() {
mResultList = findViewById(R.id.result_list);
mResultList.setLayoutManager(new LinearLayoutManager(this));
mResultAdapter = new ResultAdapter();
mResultList.setAdapter(mResultAdapter);
}
private void refreshResultList(MomentItem result) {
Log.d(TAG,"refreshResultList -- ");
mResultAdapter.setData(result);
}
public void startRequest(View view) {
new Thread(new Runnable() {
@Override
public void run() {
loadData();
}
}).start();
}
private void loadData() {
try {
URL url = new URL("https://www.sunofbeach.net/content/content/moment/list/1153952789488054272/1");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(1000);
int responseCode = httpURLConnection.getResponseCode();
if(responseCode == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
String line = bufferedReader.readLine();
Log.d(TAG,"line -- > " + line);
bufferedReader.close();
Message message = mHandler.obtainMessage();
message.what = WHAT_LOADER_RESULT;
Gson gson = new Gson();
message.obj = gson.fromJson(line,MomentItem.class);
mHandler.sendMessage(message);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
bean类,通过GsonFormat自动生成,如果不会的同学可以去看一下AndroidStudio奇淫技巧课程,在学院里。
package com.sunofbeaches.javanetdemo;
import java.util.List;
public class MomentItem {
/**
* success : true
* code : 10000
* message : 获取成功
* data : {"content":[{"_id":"1200696538762956800","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200681268338085888","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-30T08:42:17.361+0000","thumbList":[],"subTitle":"Android网络访问不同版本的差异,看完这篇文章你就茅厕顿开了。","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png"]},{"_id":"1200362375161696256","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200344514544390144","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-29T10:34:26.550+0000","thumbList":[],"subTitle":"Android开发学习路线","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png"]},{"_id":"1200343023158939648","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200314266318655488","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3g2IKAPYYnAAFxwyobdPA422.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-29T09:17:32.673+0000","thumbList":[],"subTitle":"Android初学者高频问题","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3g2IKAPYYnAAFxwyobdPA422.png"]},{"_id":"1200075606839119872","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/s/1200075011881291776","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f6OyAHiCeAAE8PSq5KVE517.png","subContent":"这个对于写博客呀,提问题都很方面。可以帮助同学们去描述问题,描述现象,很轻量级,使用简单。有需要的同学,下载一个来使用吧。","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T15:34:55.654+0000","thumbList":[],"subTitle":"非常轻量级的gif录制软件","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f6OyAHiCeAAE8PSq5KVE517.png"]},{"_id":"1200074792489832448","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200067479267823616","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T15:31:41.498+0000","thumbList":[],"subTitle":"作为一个聪明的程序员,应该如何提bug,提问呢?","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png"]},{"_id":"1200001280555126784","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198454553108926464","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T10:39:34.887+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-代码管理","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png"]},{"_id":"1200001270300053504","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198499103244406784","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T10:39:32.442+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-编码","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif"]},{"_id":"1198877411572305920","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/s/1198876503853617152","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3bjL6AUyWaAANyjRtAQVU355.png","subContent":"Android Stduio插件下载地址,如果我们的AS下载不了插件,那么可以使用浏览器进行下载,然后再通过inastall from disk安装即可。","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-25T08:13:43.641+0000","thumbList":["1185049561517850624"],"subTitle":"Android Stduio插件下载地址","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3bjL6AUyWaAANyjRtAQVU355.png"]},{"_id":"1198513486074859520","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198499103244406784","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T08:07:37.041+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-编码","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif"]},{"_id":"1198488984297263104","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198454553108926464","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T06:30:15.362+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-代码管理","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png"]},{"_id":"1198453675350151168","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198435426919108608","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Z_MOAcOQdAACHzLSqHmo192.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T04:09:57.053+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-项目导入","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Z_MOAcOQdAACHzLSqHmo192.png"]},{"_id":"1198287706304663552","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198146335145054208","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y-CKAE7R9AAAe0PNEIFo946.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y73aAKnjNAAFT53qLkF0823.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y7zuAK8w8AABGCZQRXZQ148.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-23T17:10:26.949+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-项目相关","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y-CKAE7R9AAAe0PNEIFo946.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y73aAKnjNAAFT53qLkF0823.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y7zuAK8w8AABGCZQRXZQ148.png"]},{"_id":"1198141967687602176","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198120317357248512","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3YzXOAMJAkAAPJi1jU9Pc469.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-23T07:31:20.155+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧IDE设置","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3YzXOAMJAkAAPJi1jU9Pc469.png"]},{"_id":"1197834129564094464","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1197731399965200384","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XZvWAPn12AAEFRU3zoRY668.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Xb9SAaHGKAAAroyVN2_A756.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XeeaAXL8wAAIMLE7rEKc984.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-22T11:08:05.827+0000","thumbList":["1185049561517850624"],"subTitle":"安卓网路编程-http协议","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XZvWAPn12AAEFRU3zoRY668.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Xb9SAaHGKAAAroyVN2_A756.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XeeaAXL8wAAIMLE7rEKc984.png"]},{"_id":"1197808497891332096","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/s/1197802791079366656","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XqYmAW_ilAACgEEu-YtI030.png","subContent":"可以抓包,可以做测试,抓本地访问的,甚至可以抓手机访问的内容,但是手机要设置代理。后面再写一篇如何使用的文章吧。功能强大到用不完,你说呢,哈哈!","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-22T09:26:14.760+0000","thumbList":["1185049561517850624"],"subTitle":"Fiddler抓包工具,墙裂推荐,功能很强大很全的一个工具","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XqYmAW_ilAACgEEu-YtI030.png"]}],"pageable":{"sort":{"unsorted":false,"sorted":true},"pageSize":15,"pageNumber":0,"offset":0,"unpaged":false,"paged":true},"totalPages":9,"totalElements":131,"last":false,"first":true,"sort":{"unsorted":false,"sorted":true},"numberOfElements":15,"size":15,"number":0}
*/
private boolean success;
private int code;
private String message;
private DataBean data;
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public static class DataBean {
/**
* content : [{"_id":"1200696538762956800","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200681268338085888","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-30T08:42:17.361+0000","thumbList":[],"subTitle":"Android网络访问不同版本的差异,看完这篇文章你就茅厕顿开了。","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png"]},{"_id":"1200362375161696256","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200344514544390144","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-29T10:34:26.550+0000","thumbList":[],"subTitle":"Android开发学习路线","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png"]},{"_id":"1200343023158939648","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200314266318655488","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3g2IKAPYYnAAFxwyobdPA422.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-29T09:17:32.673+0000","thumbList":[],"subTitle":"Android初学者高频问题","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3g2IKAPYYnAAFxwyobdPA422.png"]},{"_id":"1200075606839119872","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/s/1200075011881291776","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f6OyAHiCeAAE8PSq5KVE517.png","subContent":"这个对于写博客呀,提问题都很方面。可以帮助同学们去描述问题,描述现象,很轻量级,使用简单。有需要的同学,下载一个来使用吧。","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T15:34:55.654+0000","thumbList":[],"subTitle":"非常轻量级的gif录制软件","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f6OyAHiCeAAE8PSq5KVE517.png"]},{"_id":"1200074792489832448","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1200067479267823616","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T15:31:41.498+0000","thumbList":[],"subTitle":"作为一个聪明的程序员,应该如何提bug,提问呢?","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3f5t2ARLGnAAJywvrFa84609.png"]},{"_id":"1200001280555126784","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198454553108926464","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T10:39:34.887+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-代码管理","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png"]},{"_id":"1200001270300053504","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198499103244406784","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-28T10:39:32.442+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-编码","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif"]},{"_id":"1198877411572305920","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/s/1198876503853617152","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3bjL6AUyWaAANyjRtAQVU355.png","subContent":"Android Stduio插件下载地址,如果我们的AS下载不了插件,那么可以使用浏览器进行下载,然后再通过inastall from disk安装即可。","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-25T08:13:43.641+0000","thumbList":["1185049561517850624"],"subTitle":"Android Stduio插件下载地址","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3bjL6AUyWaAANyjRtAQVU355.png"]},{"_id":"1198513486074859520","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198499103244406784","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T08:07:37.041+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-编码","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aNt6ABIJGAAO1bKDnK6Q261.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aMa-ANr2vAAKdDqWFhqE991.gif","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aL-OAVeSKAAG5wwEHQIc679.gif"]},{"_id":"1198488984297263104","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198454553108926464","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T06:30:15.362+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-代码管理","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3aBTeAMWARAAAwdcN39nQ151.png"]},{"_id":"1198453675350151168","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1198435426919108608","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Z_MOAcOQdAACHzLSqHmo192.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-24T04:09:57.053+0000","thumbList":["1185049561517850624"],"subTitle":"AndroidStudio奇淫技巧-项目导入","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Z_MOAcOQdAACHzLSqHmo192.png"]},{"_id":"1198287706304663552","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198146335145054208","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y-CKAE7R9AAAe0PNEIFo946.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y73aAKnjNAAFT53qLkF0823.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y7zuAK8w8AABGCZQRXZQ148.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-23T17:10:26.949+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧-项目相关","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y-CKAE7R9AAAe0PNEIFo946.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y73aAKnjNAAFT53qLkF0823.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Y7zuAK8w8AABGCZQRXZQ148.png"]},{"_id":"1198141967687602176","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":0,"commentCount":0,"url":"/a/1198120317357248512","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3YzXOAMJAkAAPJi1jU9Pc469.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-23T07:31:20.155+0000","thumbList":[],"subTitle":"AndroidStudio奇淫技巧IDE设置","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3YzXOAMJAkAAPJi1jU9Pc469.png"]},{"_id":"1197834129564094464","content":"我发表了一篇文章,欢迎大家围观.!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/a/1197731399965200384","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XZvWAPn12AAEFRU3zoRY668.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Xb9SAaHGKAAAroyVN2_A756.png|https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XeeaAXL8wAAIMLE7rEKc984.png","subContent":null,"subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-22T11:08:05.827+0000","thumbList":["1185049561517850624"],"subTitle":"安卓网路编程-http协议","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XZvWAPn12AAEFRU3zoRY668.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3Xb9SAaHGKAAAroyVN2_A756.png","https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XeeaAXL8wAAIMLE7rEKc984.png"]},{"_id":"1197808497891332096","content":"我分享了以下内容,欢迎大家围观,起哄!","type":1,"thumbUpCount":1,"commentCount":0,"url":"/s/1197802791079366656","covers":"https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XqYmAW_ilAACgEEu-YtI030.png","subContent":"可以抓包,可以做测试,抓本地访问的,甚至可以抓手机访问的内容,但是手机要设置代理。后面再写一篇如何使用的文章吧。功能强大到用不完,你说呢,哈哈!","subUserName":null,"subUserAvatar":null,"subUserId":null,"userName":"拉大锯","userId":"1153952789488054272","userAvatar":"https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png","publishTime":"2019-11-22T09:26:14.760+0000","thumbList":["1185049561517850624"],"subTitle":"Fiddler抓包工具,墙裂推荐,功能很强大很全的一个工具","position":"第一个用户","company":"阳光沙滩","hasThumbUp":false,"images":["https://imgs.sunofbeaches.com/group1/M00/00/0A/rBsADV3XqYmAW_ilAACgEEu-YtI030.png"]}]
* pageable : {"sort":{"unsorted":false,"sorted":true},"pageSize":15,"pageNumber":0,"offset":0,"unpaged":false,"paged":true}
* totalPages : 9
* totalElements : 131
* last : false
* first : true
* sort : {"unsorted":false,"sorted":true}
* numberOfElements : 15
* size : 15
* number : 0
*/
private PageableBean pageable;
private int totalPages;
private int totalElements;
private boolean last;
private boolean first;
private SortBeanX sort;
private int numberOfElements;
private int size;
private int number;
private List<ContentBean> content;
public PageableBean getPageable() {
return pageable;
}
public void setPageable(PageableBean pageable) {
this.pageable = pageable;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getTotalElements() {
return totalElements;
}
public void setTotalElements(int totalElements) {
this.totalElements = totalElements;
}
public boolean isLast() {
return last;
}
public void setLast(boolean last) {
this.last = last;
}
public boolean isFirst() {
return first;
}
public void setFirst(boolean first) {
this.first = first;
}
public SortBeanX getSort() {
return sort;
}
public void setSort(SortBeanX sort) {
this.sort = sort;
}
public int getNumberOfElements() {
return numberOfElements;
}
public void setNumberOfElements(int numberOfElements) {
this.numberOfElements = numberOfElements;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public List<ContentBean> getContent() {
return content;
}
public void setContent(List<ContentBean> content) {
this.content = content;
}
public static class PageableBean {
/**
* sort : {"unsorted":false,"sorted":true}
* pageSize : 15
* pageNumber : 0
* offset : 0
* unpaged : false
* paged : true
*/
private SortBean sort;
private int pageSize;
private int pageNumber;
private int offset;
private boolean unpaged;
private boolean paged;
public SortBean getSort() {
return sort;
}
public void setSort(SortBean sort) {
this.sort = sort;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public boolean isUnpaged() {
return unpaged;
}
public void setUnpaged(boolean unpaged) {
this.unpaged = unpaged;
}
public boolean isPaged() {
return paged;
}
public void setPaged(boolean paged) {
this.paged = paged;
}
public static class SortBean {
/**
* unsorted : false
* sorted : true
*/
private boolean unsorted;
private boolean sorted;
public boolean isUnsorted() {
return unsorted;
}
public void setUnsorted(boolean unsorted) {
this.unsorted = unsorted;
}
public boolean isSorted() {
return sorted;
}
public void setSorted(boolean sorted) {
this.sorted = sorted;
}
}
}
public static class SortBeanX {
/**
* unsorted : false
* sorted : true
*/
private boolean unsorted;
private boolean sorted;
public boolean isUnsorted() {
return unsorted;
}
public void setUnsorted(boolean unsorted) {
this.unsorted = unsorted;
}
public boolean isSorted() {
return sorted;
}
public void setSorted(boolean sorted) {
this.sorted = sorted;
}
}
public static class ContentBean {
/**
* _id : 1200696538762956800
* content : 我发表了一篇文章,欢迎大家围观.!
* type : 1
* thumbUpCount : 0
* commentCount : 0
* url : /a/1200681268338085888
* covers : https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png|https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png
* subContent : null
* subUserName : null
* subUserAvatar : null
* subUserId : null
* userName : 拉大锯
* userId : 1153952789488054272
* userAvatar : https://imgs.sunofbeaches.com/group1/M00/00/07/rBsADV22ZymAV8BwAABVL9XtNSU926.png
* publishTime : 2019-11-30T08:42:17.361+0000
* thumbList : []
* subTitle : Android网络访问不同版本的差异,看完这篇文章你就茅厕顿开了。
* position : 第一个用户
* company : 阳光沙滩
* hasThumbUp : false
* images : ["https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iHb2AR2ktAABV8LFIYGU029.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iKCqAYWxCAAEp3Frp3bI477.png","https://imgs.sunofbeaches.com/group1/M00/00/0B/rBsADV3iAymAO-J8AABCRyG8suI326.png"]
*/
private String _id;
private String content;
private int type;
private int thumbUpCount;
private int commentCount;
private String url;
private String covers;
private Object subContent;
private Object subUserName;
private Object subUserAvatar;
private Object subUserId;
private String userName;
private String userId;
private String userAvatar;
private String publishTime;
private String subTitle;
private String position;
private String company;
private boolean hasThumbUp;
private List<?> thumbList;
private List<String> images;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getThumbUpCount() {
return thumbUpCount;
}
public void setThumbUpCount(int thumbUpCount) {
this.thumbUpCount = thumbUpCount;
}
public int getCommentCount() {
return commentCount;
}
public void setCommentCount(int commentCount) {
this.commentCount = commentCount;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getCovers() {
return covers;
}
public void setCovers(String covers) {
this.covers = covers;
}
public Object getSubContent() {
return subContent;
}
public void setSubContent(Object subContent) {
this.subContent = subContent;
}
public Object getSubUserName() {
return subUserName;
}
public void setSubUserName(Object subUserName) {
this.subUserName = subUserName;
}
public Object getSubUserAvatar() {
return subUserAvatar;
}
public void setSubUserAvatar(Object subUserAvatar) {
this.subUserAvatar = subUserAvatar;
}
public Object getSubUserId() {
return subUserId;
}
public void setSubUserId(Object subUserId) {
this.subUserId = subUserId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserAvatar() {
return userAvatar;
}
public void setUserAvatar(String userAvatar) {
this.userAvatar = userAvatar;
}
public String getPublishTime() {
return publishTime;
}
public void setPublishTime(String publishTime) {
this.publishTime = publishTime;
}
public String getSubTitle() {
return subTitle;
}
public void setSubTitle(String subTitle) {
this.subTitle = subTitle;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public boolean isHasThumbUp() {
return hasThumbUp;
}
public void setHasThumbUp(boolean hasThumbUp) {
this.hasThumbUp = hasThumbUp;
}
public List<?> getThumbList() {
return thumbList;
}
public void setThumbList(List<?> thumbList) {
this.thumbList = thumbList;
}
public List<String> getImages() {
return images;
}
public void setImages(List<String> images) {
this.images = images;
}
}
}
}
适配器的代码:
package com.sunofbeaches.javanetdemo;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class ResultAdapter extends RecyclerView.Adapter<ResultAdapter.InnerAdapter> {
private List<MomentItem.DataBean.ContentBean> mData = new ArrayList<>();
@NonNull
@Override
public InnerAdapter onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_moment,parent,false);
return new InnerAdapter(itemView);
}
@Override
public void onBindViewHolder(@NonNull InnerAdapter holder,int position) {
View itemView = holder.itemView;
TextView momentTitle = itemView.findViewById(R.id.moment_title);
ImageView avatar = itemView.findViewById(R.id.user_avatar);
TextView userInfo = itemView.findViewById(R.id.user_info);
TextView userName = itemView.findViewById(R.id.user_name);
MomentItem.DataBean.ContentBean contentBean = mData.get(position);
String subTitle = contentBean.getSubTitle();
if(!TextUtils.isEmpty(subTitle)) {
momentTitle.setText(subTitle);
} else {
momentTitle.setText(contentBean.getContent());
}
userName.setText(contentBean.getUserName());
userInfo.setText(contentBean.getPosition() + "@" + contentBean.getCompany());
//图片我们先借助于Glide,下一篇文章我们再去了解如何加载图片
Glide.with(itemView.getContext()).load(contentBean.getUserAvatar()).into(avatar);
}
@Override
public int getItemCount() {
return mData.size();
}
public void setData(MomentItem result) {
mData.clear();
mData.addAll(result.getData().getContent());
notifyDataSetChanged();
}
public class InnerAdapter extends RecyclerView.ViewHolder {
public InnerAdapter(@NonNull View itemView) {
super(itemView);
}
}
}
item的布局的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/user_avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="用户名称"
android:textColor="#0086FF"
android:textSize="18sp" />
<TextView
android:id="@+id/user_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="用户信息" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/moment_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="内容标题"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
最终运行起来的结果如何呢?
而网页版的是这样子的:
其实数据是一毛一样的。
o啦,下一篇文章我们再去了解一下如何加载图片。