作者介绍:友友们好我是乱披风锤,大二学生党一枚 作者主页:乱披风锤的个人博客主页.跳转到个人简介
我和友友们一样喜欢编辑,天天敲代码,沉迷学习,日渐消瘦。很荣幸能向大家分享我的所学,和大家一起进步。如果文章有错误,欢迎在评论区指正。那么开始今天的学习吧!
支持我:点赞+收藏??+留言
Android Studio第九课(网络编程)
- 一、准备工作,开启网络访问权限
- 二、导包,添加依赖
- 三、核心代码
- 四、运行结果
- 总结
一、准备工作,开启网络访问权限 AndroidManifest.xml加入
android:usesCleartextTraffic="true"
如图:
文章图片
二、导包,添加依赖
文章图片
在build.gradle添加
implementation 'com.google.code.gson:gson:2.9.0'
三、核心代码
package com.hnucm.network;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SignalStrength;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.google.gson.Gson;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
//网络请求得到数据解析JSON数据
@Override
protected void onResume() {
super.onResume();
}TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//{ "age":30,"name":"张三", "isstudent":true }textView=findViewById(R.id.TextView);
//findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
//@Override
//public void onClick(View view) {//解决办法->换一个线程 创建一个新线程
Thread thread=new Thread(){
@Override
public void run() {
super.run();
//run方法里面执行代码就是在子线程
try {
URL url = new URL("http://121.4.44.56/object1\n");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
InputStream inputStream = urlConnection.getInputStream();
// 字节流
Reader reader = new InputStreamReader(inputStream);
//字符流
BufferedReader bufferedReader = new BufferedReader(reader);
// 缓存流
String result = "";
String temp;
while ((temp = bufferedReader.readLine()) != null) {
result += temp;
}
Log.i("MainActivity", result);
//所有UI操作应该在主线程中执行
//切换到主线程String finalResult=result;
runOnUiThread(new Runnable() {
@Override
public void run() {
//一次性将JSON解析为一个对象
Gson gson=new Gson();
Student student = gson.fromJson(finalResult, Student.class);
textView.setText(student.class1.classname);
//object1{ "age":20,"name":"张三", "isstudent":true,"class":{"grade":"18级","classname":"计算机科学与技术"} }
//object2{ "grade":"18级","classname":"计算机科学与技术","students":["张三","李四","王五"] }// object3{ "grade":"18级","classname":"计算机科学与技术","students":[ { "id":"001","age":30,"name":"张三", "isstudent":false }, { "id":"002","age":25,"name":"李四", "isstudent":true }, { "id":"003","age":26,"name":"王五", "isstudent":true } ]}
//字符串 ,整型 ,浮点型 ,布尔 ,Json类型 ,数组
//try {
//JSONObject jsonObject=new JSONObject(finalResult);
//
//JSONArray jsonArray=jsonObject.getJSONArray("students");
//for (int i=0;
i
四、运行结果
文章图片
总结 【Android|Android Studio第九课(学习打卡Day11)】好了,那么今天的学习就到这里了。友友们觉得不错的可以给个关注,点赞或者收藏哦!感谢各位友友们的支持。以下的代码希望各位大佬们自行检验哦,毕竟亲手操作让记忆更加深刻。
推荐阅读
- android|Android Studio第八课(SqLite数据库,Room框架,轮播图)
- 一起看 I/O | Google TV 和 Android TV OS 的最新进展
- 嵌入式D平台|EXPT_1:BleDeviceListActivity与FroBleAdapter
- 好看视频Android重构——围绕于播放器的重构实践
- 如何为Android应用程序创建WordPress REST API
- 如何获得任何WordPress网站的所有插件的名称和活动主题()
- 鸿蒙分包与Android app组件化
- 如何实现 Android 短视频跨页面的流畅续播()
- 揭秘盒马鲜生 Android 短视频秒播优化方案