Transformadores em Retrofit

Depois de recebermos a resposta do servidor, tanto o okHttp quanto o Retrofit só podem receber dados do tipo String. No desenvolvimento real, muitas vezes precisamos analisar a string e convertê-la em um objeto Java Bean. Por exemplo, se os dados de resposta do servidor forem uma string no formato JSON, podemos usar a biblioteca GSON para concluir a operação de desserialização. E o Retrofit fornece vários conversores para que a resposta possa concluir a conversão automática de dados. O exemplo a seguir usa a análise json.


adicionar dependência do conversor

implementation "com.squareup.retrofit2:converter-gson:2.9.0"


Passo 1: Obtenha o Java Bean e gere a classe de entidade

Entre na plataforma aberta da API wanandroid https://www.wanandroid.com/blog/show/2, use a interface de login dentro como 

https://www.wanandroid.com/user/login Método: POST Parâmetros: nome de usuário, senha

Use o Postman para visualizar o resultado da solicitação desta interface:


 

Entre na ferramenta de formatação de verificação JSON online (Be JSON) , selecione json para gerar a classe de entidade java, cole o resultado retornado e, em seguida, altere o nome da classe para BaseResponse e Package é o nome do seu pacote 

Baixe o código e copie o arquivo baixado para o diretório do projeto

Gere o método toString no código (ambos são obrigatórios) clique em alt+insert e depois clique em toString()

 

 


Etapa 2: criar uma interface Java baseada na interface Http

package com.example.networkdemo;

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface WanAndroidService {
    @POST("user/login")
    @FormUrlEncoded
    Call<BaseResponse> login(@Field("username") String username, @Field("password") String pwd);
}


Passo 3: Use o conversor, BaseResponse recebe o valor de retorno

package com.example.networkdemo;

import org.junit.Test;
import java.io.IOException;
import retrofit2.Call;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class RetrofitTest {

    //使用转换器
    Retrofit retrofit2=new Retrofit
         .Builder()
         .baseUrl("https://www.wanandroid.com/")
         .addConverterFactory(GsonConverterFactory.create())//添加转换器
         .build();
    WanAndroidService wanAndroidService=retrofit2.create(WanAndroidService.class);


    @Test
    public void loginConvertTest() throws IOException {
        //登录
        Call<BaseResponse> call = wanAndroidService.login("dll", "dl666666");
        //发送请求将数据转换成java对象
        Response<BaseResponse> response = call.execute();
        BaseResponse baseResponse = response.body();
        System.out.println(baseResponse);

    }


}


resultado da operação:

 O conversor completa a conversão automática

Acho que você gosta

Origin blog.csdn.net/weixin_53443677/article/details/126402113
Recomendado
Clasificación