kiayun手机版登录打开即玩v1011.玩看我最新关网.中国 Android初学八之Android网络编程
目录 0 环境
进行代码编写kiayun手机版登录,在Android Studio里,还要针对界面效果予以展示 。
要达成的目标是,掌握安卓网络编程的基本原理,掌握常用的网络编程框架即OKhttp,能够开展APP网络编程开发,关于OkHttp框架的原理 。
OkHttp是一套用于处理HTTP网络请求的依赖库,它由Square公司进行设计研发kiayun手机版登录app游戏登录入口.手机端安装.cc,而后开源,当下能够在Java以及Kotlin中予以使用。就Android App而言,目前OkHttp在网络请求操作方面几乎占据了全部,借助RetroFit + OkHttp来实现网络请求好像已然成为了一种标配。
OkHttp用于网络请求有两种方式,其一为同步请求,其二是异步请求。同步请求在发起请求之际要开启子线程,于请求成功之后需跳转至UI线程去修改UI。异步请求的打印结果跟同步请求时一样,注意事项也相同,最大的差异在于异步请求无需开启子线程。
注意:进行使用之际,要于项目的build.gradle文件里的dependencies代码块之中,增添OKhttp的依赖:
实施,‘com.squareup.okhttp3:okhttp:5.0.0 - alpha.3’。
3 界面展示


4 核心代码
(详细代码见gitee代码仓库)
4.1 UI设计
在activity_main.xml中设计主页面的展示:
UI设计展示:

4.2 安装网络框架环境
要在项目的build.gradle文件里,于dependencies代码块之中kiayun手机版登录app游戏登录入口.手机端安装.cc,添加OKhttp的依赖,具体添加的内容为:implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.3' 。

完成OKHttp依赖添加之后,留意拉取依赖就行,于后续的运用当中,便能够调用相关API了。
但是,需要留意的是,要在 AndroidManifest.xml 这个文件当中,添加网络权限,。

4.3 使用网络框架连接后台数据并在APP中展示数据结果
在onCreate方法里,对相关变量予以初始化,接着定义按钮的点击事件监听函数啊,再定义Handler对象呢,还要重写其用来接收子线程消息的handleMessage方法呀,以及主线程UI用于修改主界面的方法呢。
@Override
受保护的,当创建时,针对包的已保存实例状态,执行此操作 ,{ },其中包含有状态信息 ,{ },如果该状态存在 ,{ },则执行此方法 ,。
将其改写为:超级的在创建时调用(savedInstanceState) ,这里是在超类的创建活动时调用保存瞬间状态的相关操作 ,其中超级是针对超规模。
调用设置内容视图的方法,参数为R.layout.activity_main 。
按钮等于通过标识符查找视图,该标识符是资源文件中定义的测试按钮的标识符 。这里专门用于从布局文件中,依据特定控件ID来找寻。
imageView,通过 findViewById 方法,去找到,R.id.image 所对应的视图 。
button,设置了一个监听器,监听器是新创建的,属于View.OnClickListener类型 。
@Override
public void onClick(View v) {
AsyncGet();
}
});
handler被创建了,它是基于new Handler,而这个Handler又是基于new Handler.Callback() ,有这样一种情况的存在 ,这三者之间存在着特定的关联关系 。
@Override
采用公开的布尔类型,用于处理消息,此消息为Message类型 ,方法为handleMessage ,是吗? 。
if (message.what == GET_IMG){
首先,有一个字节数组,它被命名为picture ,然后呢,这个字节数组picture 被赋值为,通过将message.obj进行强制类型转换得到的,那个字节数组 。
Bitmap bitmap,它是由BitmapFactory通过对picture从起始位置0开始,以picture的长度进行解析字节数组后得到的 。
imageView,将其设置图像的方法里,放入bitmap这个对象,以此来实现,在主线程当中,对UI进行修改,。
}
return true;
}
});
}
用于获取网络数据的核心函数,借助定义名为AsyncHttp的方法开展访问网络数据的操作。首先运用了OKHttp里生成OkHttpClient对象的办法,明确了解析图片的格式以及字符集,构建了发出请求时的Request对象,还指定了目标图片的URL,通过采用异步请求处理的形式向UI线程发送数据,进而让UI线程更新显示所获取到的图片:
private void AsyncGet(){
把OkHttpClient实例化,创建一个新的OkHttpClient对象,命名为client 。
媒体类型 mediatype 等于,通过解析“img/png,charset=utf-8”得到的媒体类型,其中 mediatype 指向媒体类型 。
创建一个RequestBody对象,这个对象是通过RequestBody的类方法create,以特定的媒体类型mediaType和空字符串""作为参数来创建的 。
有一个名为Request的请求,它呢,是通过一个使用生成器进行构建的方式来获取的,这个生成器是一个名为Builder的构建器,而这个Builder构建器是。
这是一串代码,它的内容呢是.url函数链接地址为https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fdl.zhutix.net%2F2018%2F11%2F1917983b557eb57cbec.jpg%3Fx-oss-process%3Dimage%2Fresize%2Cw_1570 ,并且它的引用地址是http%3A%2F%2Fdl.zhutix.net ,同时呢它还有一系列如 app取的值为2002、size取的值为f9999,10000、q取的值为a80、n取的值为0、g取的值为0n、fmt取的值为jpeg等参数设置 。
.get()
.build();
客户端创建新的调用,该调用基于请求,此请求被排队,排队时使用了一个回调,这个回调是新的,且属于一个特定方法中的回调类型 。
@Override
public void onFailure,这个方法里,有两个参数,一个是@NonNull Call call,还有一个是 @NonNull IOException e 。
}
@Override
公开的 void 类型的方法,名为 onResponse,带有两个参数,其中一个是非空类型的 Call 名为 call,另一个是非空类型的 Response 名为 response,并且该方法会抛出 IOException 异常 。
那一个由字节所构成的数据组,其名为picture,它是通过对response的body调用bytes这个方法而获取到的,句号。
以日志级别为错误,在标识为OkHttp的地方记录信息,该信息内容是,将picture与字符串response = 拼接后的结果 。
先获取一个消息对象,将其赋值给名为message的Message类型属性,这个消息对象是通过Message类的obtain方法得到的 。
message.what = GET_IMG;
message.obj = picture;
handler.sendMessage(message);
}
});
}
5 代码仓库
具体代码已上传至gitee代码仓库
6 总结
呈现了安卓是怎样开展简易的网络编程的,与此同时运用了用于网络请求的OKHttp框架 。 展示了安卓如何去进行简单的网络编程,并且使用了用于网络请求的OKHttp框架 。
可能遇到的问题及解决方法:
运行的时候出现报错情况,报错内容为:java.lang.SecurityException,意思是权限被拒绝,括号里提示是不是缺少了INTERNET权限呢 。
原因:未添加网络权限
解决办法是,于AndroidManifest.xml里,增添网络权限,。
后续会继续更新有关Android设计的内容!
(注:第27次发文,如有错误和疑问,欢迎在评论区指出!)
——2022.1.15