美文网首页Kotlin-Android-KotlinJS-Kotlin/NativeKotlin编程Kotlin
Kotlin使用AsyncHttp进行Android 网络请求

Kotlin使用AsyncHttp进行Android 网络请求

作者: 那年23 | 来源:发表于2017-06-18 22:34 被阅读714次

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

    不正之处,还望指出。

    相关文章

      网友评论

        本文标题:Kotlin使用AsyncHttp进行Android 网络请求

        本文链接:https://www.haomeiwen.com/subject/kpuwqxtx.html