使用OkHttp建立连接并发送请求
使用JSON处理返回的json字符串并获取某个字段的值
配合线程使用
private Runnable testOkHttpAndJSONRunnable(){
//创建实体类封装JSON对象
TestRequesEntity testRequestEntity = new TestRequesEntity();
//转换json字符串
final String testRequestJson = JSON.toJSONString(testRequestEntity);
return () -> {
//建立客户端testClient
OkHttpClient testClient = new OkHttpClient();
//设置访问地址testURL
String testURL = "";
//创建HTTP请求testRequest,传入json字符串testRequestJson
Request testRequest = new Request.Builder()
.url(testURL)
.post(RequestBody.create(MediaType.parse("application/json"),
testRequestJson))
.build();
//设置标志位testFlag,用于停止线程
while (testFlag) {
try {
//执行发送的指令,封装返回值testResponse
Response testResponse = testClient.newCall(testRequest ).execute();
//获取返回数据testResponseData
String testResponseData = Objects.requireNonNull(testResponse .body()).string();
//打印日志
Log.d(TAG, "testResponseData: " + testResponseData);
//转换成JSON对象
JSONObject jsonObject = JSON.parseObject(testResponseData);
// testResults字段为一个json串(json中还包含着json)
JSONObject jsonObjectTestResults = jsonObject .getJSONObject("testResults");
// test字段为一个字符串
String testJSONString = jsonObject.getString("test");
// 拓展:刷新UI(实时刷新数据)
runOnUiThread(() -> {
textView.setText(testJSONString );
});
}
catch (Exception e){
e.printStackTrace();
}
}
};
}