小言_互联网的博客

Andriod开源框架asynchttpclient基本使用

269人阅读  评论(0)

1.导入相关依赖

在build.gradle中dependencies中添加
implementation ‘net.callumtaylor:asynchttpclient:2.1.1’

2.代码实现

2.1使用get方式来发送请求

/**
     * 使用get请求方式来向服务器发送数据
     * @param view
     */
    public void getToLogin(View view)
    {
        //发送请求url
        path = "http://192.168.6.57:8080/login?username=" + etUserName.getText().toString().trim() + "&userpass=" + etUserPass.getText().toString().trim();

        //初始化一个asynchttpclient对象,传入请求的url
        AsyncHttpClient httpClient = new AsyncHttpClient(path);

        //使用get请求,响应处理器使用jsonresponsehandler,还有其他响应处理器
        httpClient.get(new JsonResponseHandler()
               {
                   //请求成功时候执行的代码
                   @Override
                   public void onSuccess()
                   {
                       JsonElement element = getContent();
                       final String asString = element.getAsString();
                       runOnUiThread(new Runnable()
                       {
                           @Override
                           public void run()
                           {
                               Toast.makeText(getApplicationContext(), asString, Toast.LENGTH_LONG).show();
                           }
                       });
                   }
                   
                   //请求失败的时候执行的代码
                   @Override
                   public void onFailure()
                   {
                       JsonElement element = getContent();
                       String asString = element.getAsString();
                       Toast.makeText(getApplicationContext(), asString, Toast.LENGTH_LONG).show();
                   }
               }
        );

    }

2.2使用post请求方式发送请求

public void postToLogin(View view)
    {
        path = "http://192.168.6.57:8080";
        String username = etUserName.getText().toString().trim();
        String userpass = etUserPass.getText().toString().trim();


        AsyncHttpClient httpClient = new AsyncHttpClient(path);
        
        //post请求的data数据,键值对的列表
        List<NameValuePair> params = new ArrayList<>();
        params.add(new NameValuePair("username", username));
        params.add(new NameValuePair("userpass", userpass));


        //这边是uri路径,全称为http://192.168.6.57:8080/login,上面已经传入了服务器路径,这边只要写子目录
        httpClient.post("login", params, new StringResponseHandler()
        {
            @Override
            public void onSuccess()
            {
                final String asString = getContent();
                runOnUiThread(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        Toast.makeText(getApplicationContext(), asString, Toast.LENGTH_LONG).show();
                    }
                });
            }
        });
    }

转载:https://blog.csdn.net/qpalzmwodyz/article/details/102310197
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场