Kotlin-Android-KotlinJS-Kotlin/NativeKotlin编程Kotlin

Kotlin使用AsyncHttp进行Android 网络请求

2017-06-18  本文已影响714人  那年23

       前篇文章讲述了如何构建一个基于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数据解析了。

不正之处,还望指出。

上一篇 下一篇

猜你喜欢

热点阅读