📜  如何通过示例在 Android 中使用快速 Android 网络库?

📅  最后修改于: 2022-05-13 01:56:14.909000             🧑  作者: Mango

如何通过示例在 Android 中使用快速 Android 网络库?

在 Android 中,我们知道多个网络库,例如 Retrofit、Volley。我们专门使用这些库来发出网络请求,例如在 API 上执行操作。但除此之外,还有一个名为 Fast Networking Library 的库,它比其他库有一些优势。在本教程中,我们将特别关注学习这个库。我们将做以下事情。

  • 快速网络库入门
  • 发出一个简单的 GET 请求

分步实施

第 1 步:创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。

第二步:添加依赖

复制以下依赖项并将其粘贴到您的应用级 build.gradle 文件中。

第 3 步:在清单文件中添加 Internet 权限

确保在 Android 清单文件中添加以下代码行。这将使您可以访问互联网,否则应用程序将崩溃。

第 4 步:在 activity_main.xml 中添加 TextView

为了测试我们的快速网络库代码的工作,我们需要添加一个文本并更改它的文本,以确保我们得到响应成功还是出错。所以activity_main.xml文件的代码如下

XML


  
    
  


Java
package com.example.gfgfastnetworkinglib;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
import org.json.JSONObject;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Defining TextView which we made in XML
        TextView textView = findViewById(R.id.textView);
  
        // Initializing Android Networking
        AndroidNetworking.initialize(getApplicationContext());
          
        // Actually making the GET request
        AndroidNetworking.get("https://meme-api.herokuapp.com/gimme")
                .build()
                .getAsJSONObject(new JSONObjectRequestListener() {
                    @Override
                    public void onResponse(JSONObject response) {
                        // Text will show success if Response is success
                        textView.setText("Response Successful");
                    }
  
                    @Override
                    public void onError(ANError anError) {
                        // Text will show failure if Response is failure
                        textView.setText("Response Failure");
                    }
                });
    }
}


第 5 步:初始化 Android 网络类

首先,我们必须先初始化 Android Networking Class,然后才能使用它。可以通过在 MainActivity 中添加一行来完成,如下所示

AndroidNetworking.initialize(getApplicationContext());

第 6 步:发出获取请求

我们将尝试从 REST API 获取数据。我们将使用的 API 的链接如下所示

在 MainActivity 中添加以下代码,这实际上将在 API 上发出 GET 请求

AndroidNetworking.get("https://meme-api.herokuapp.com/gimme")
                .build()
                .getAsJSONObject(new JSONObjectRequestListener() {
                    @Override
                    public void onResponse(JSONObject response) {
                        textView.setText("Response Successful");
                    }

                    @Override
                    public void onError(ANError anError) {
                        textView.setText("Response Failure");
                    }
                });

第 7 步:使用 MainActivity。Java

执行上述所有步骤后,我们在 MainActivity 中的代码将如下面的代码所示。您也可以直接复制以下代码并将其粘贴到您的 MainActivity 文件中。

Java

package com.example.gfgfastnetworkinglib;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
import org.json.JSONObject;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // Defining TextView which we made in XML
        TextView textView = findViewById(R.id.textView);
  
        // Initializing Android Networking
        AndroidNetworking.initialize(getApplicationContext());
          
        // Actually making the GET request
        AndroidNetworking.get("https://meme-api.herokuapp.com/gimme")
                .build()
                .getAsJSONObject(new JSONObjectRequestListener() {
                    @Override
                    public void onResponse(JSONObject response) {
                        // Text will show success if Response is success
                        textView.setText("Response Successful");
                    }
  
                    @Override
                    public void onError(ANError anError) {
                        // Text will show failure if Response is failure
                        textView.setText("Response Failure");
                    }
                });
    }
}

上面代码的解释:

正如您在上面的代码中所见,我们必须在 AndroidNetworking 的 get() 方法中传递 API 链接。随着我们进一步进行,我们有两个重写的方法 onResponse 和 onError。根据我们从 API 获得的响应,这两种方法中的任何一种都会得到。

如果响应成功,onResponse 方法将被调用,因此文本将设置为 Response Success,如果我们从 API 获得失败响应,则 onError 方法将被调用,因此其中的代码将被执行,文本将设置为响应失败。由于互联网的某些问题或 API 的某些安全问题,我们可能会收到失败响应。

输出:

我们可以清楚地看到输出显示响应成功,这意味着我们使用快速网络的 GET 请求是成功的。如果发生了一些问题,那么在输出中我们会看到响应失败。