前篇文章讲述了如何构建一个基于Kotlin的Android项目,以及登录界面的实现。这篇文章就着重讲述如何实现网络请求。
实现网络访问我使用的是第三方的框架 AsyncHttp。
首先针对登录界面的数据进行格式验证,即用到正则表达式。代码如下:
if(!username.text.toString().matches(("^[1][3,4,5,7,8][0-9]{9}$").toRegex())) {
Toast.makeText(this,"输入正确的手机号码", Toast.LENGTH_SHORT).show();
}else{}
使用kotlin的matches就是比较前后对象是否相同,并返回一个Boolean结果,但是matches后面的参数必须是Regex类型。所以需要加上toRegex();
其次就是导入所需要的AsyncHttp jar包了,下载地址请自行百度。
我这里使用的是1.4.3版本,下载完后切换到Project目录,并导入libs目录下,添加依赖即可。如图项目结构
导入项目添加依赖然后 就需要使用AsyncHttp构建请求了。
首先定义了全局URl变量:如图
定义全局URL变量然后使用AsyncHttp进行访问,代码如下:
varreque: RequestParams? =null;
reque?.put("phonenum",username.text.toString().trim());
reque?.put("password",password.text.toString().trim());
varclient = AsyncHttpClient().post(url,reque,object:AsyncHttpResponseHandler(){
override funonSuccess(p0: String?) {
super.onSuccess(p0)
Toast.makeText(LOGIN,"访问成功"+p0,Toast.LENGTH_SHORT).show();
}
override funonFailure(p0: Throwable?, p1: String?) {
super.onFailure(p0, p1)
Toast.makeText(LOGIN,"访问失败",Toast.LENGTH_SHORT).show();
}
});
AsyncHttp的参数说明:第一个是访问的服务器地址,第二个是访问需要携带的参数,第三个就是回调的结果,其中onSuccess方法中返回的就是服务器返回的结果,这里以JSON解析就好了。onFailure方法中的参数就是错误信息,如果执行了onFailure则代表网络请求失败了。一可能是没有获取网络权限,二是手机没有网。所以,我们需要在manifest中添加网络请求权限。如图。
添加网络访问权限最终效果图如下:
最终结果至此,网络访问基本完成了,剩下的就是JSON数据解析了。
不正之处,还望指出。
网友评论