我正在为网站开发安卓移动应用程序,我有一个网址用户名和密码。我需要通过应用程序登录。应该怎么做?我是否需要使用任何库进行身份验证。任何帮助将不胜感激。提前感谢!
Android 的网络请求应该通过库来完成,例如 Retrofit 或 Volley。如果您是Android新手和/或正在寻找登录的快速解决方案,我建议您尝试Volley,因为它需要较少的设置经验。这是了解凌空抽射的好资源。
另一个不错的选择,也是目前最广泛采用的解决方案是改造。如果您在应用程序中执行的不仅仅是一些简单的网络调用,我强烈建议您了解 Retrofit。在我看来,这需要更多的Android知识,但这是一个更优雅的解决方案,值得学习。
您必须学习使用这些库中的任何一个向 API 发出 POST 请求,将用户名和密码作为参数或在请求正文中传递。API 可能会在响应正文中返回用于身份验证的令牌。祝你好运!
首先,您必须实现一些 rest api 库。
implementation('com.squareup.retrofit2:retrofit:2.1.0') {
exclude module: 'okhttp'
}
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
implementation 'com.squareup.okhttp3:logging-interceptor:4.2.0'
implementation 'com.squareup.okhttp3:okhttp:4.2.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
然后在创建类ApiClient..之后,在这个类中编写下面的代码
public class ApiClient {
private static Retrofit retrofit = null;
public static Retrofit getClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
retrofit = new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com")
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
return retrofit;
}}
现在创建接口 ApiInterface 并在其中编写以下代码。
public interface ApiInterface {
@FormUrlEncoded
@POST("login/")
Call<Your Pojo Class> loginuser(@Field("method") String method, @Field("login_name")
String loginname,@Field("password") String password);}
在你的主活动中写下面的代码。
APIInterface apiInterface;
apiInterface = APIClient.getClient().create(APIInterface.class);
Call<EarnAmount> call = apiInterface.loginuser("loginuser", loginid,password);
call.enqueue(new Callback<Your Pojo>() {
@Override
public void onResponse(Call<Your Pojo> call, Response<Your Pojo> response) {
//you will get some response
//you can handle response from here
}
@Override
public void onFailure(Call<Your Pojo> call, Throwable t) {
//check internet connection or something went wrong
}
}); }