Un mémorandum lors de la création de l'API. J'ai pu communiquer avec cela pour le moment, sans explication détaillée.
--Définissez le fichier manifeste pour permettre la communication --Définissez une classe pour recevoir les demandes et les réponses --Créer un point de terminaison --Créer un client HTTP --Exécuter
AndroidManifest.Écrivez ce qui suit en xml
#### **`AndroidManifest.xml`**
```java
<uses-permission android:name="android.permission.INTERNET" />
Classe de demande de connexion, le corps de la demande est envoyé dans ce format
LoginRequest.java
package com.example.bookmanager_android.models.requests;
public class LoginRequest {
    private String email;
    private String password;
    public LoginRequest(String email, String passWord){
        this.email = email;
        this.password = passWord;
    }
}
Classe de réponse pour la connexion, la réponse est reçue sous cette forme
LoginResponse.java
package com.example.bookmanager_android.models.requests.response;
public class LoginResponse {
    public int status;
    public Result result;
    public static class Result {
        public int id;
        public String email;
        public String token;
    }
}
Créer une interface
RequestApiService
public interface RequestApiService {
    @POST("/login") //Point de terminaison de l'API
    Call<LoginResponse> logIn(@Body LoginRequest requestBody); 
    //Lorsque la méthode logIn est appelée,Le format du corps sera la forme de la classe LoginRequest créée ci-dessus.
}
HttpClient.java
public class HttpClient {
    public static RequestApiService apiService;
    private static final String URL = "http://baseurl"; //Spécifiez BaseUrl
    // Okhttp
    private static final OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(10, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .build();
    // GSON
    private static final Gson gson = new GsonBuilder()
            .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
            .create();
    //Créez un client Http en combinant Retrofit avec GSON et Okhttp
    public static RequestApiService getRequestApiService() {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(URL)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
                .build();
        apiService = retrofit.create(RequestApiService.class);
        return apiService;
    }
SignInFragment.java
private boolean starLogin(String emailStr, String passwordStr) {
        //Créer un corps
        LoginRequest requestBody = new LoginRequest(emailStr, passwordStr);
        //Appel client HTTP
        RequestApiService apiService = HttpClient.getRequestApiService();
        //Début de la communication: le processus défini dans l'interface est appelé
        apiService.logIn(requestBody).enqueue(new Callback<LoginResponse>() {
            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
                if (response.isSuccessful()) {
                   //Décrit le traitement lorsque le traitement de la communication est réussi
                } else {
                    Log.e("SignInFragment", "Something wrong On Response: " + response.toString());   
                }
            }
            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {
                //Décrit le traitement lorsque le traitement de la communication échoue
            }
        });
        return true;
    }
Il y a encore des choses comme la conservation des jetons et le traitement en cas de succès ou d'échec, mais pour le moment, la communication était possible.
Recommended Posts