Android Stuidio——retrofit2的Get请求


只写Get请求的原因是我就用到了这个,剩下的用到了再补

首先项目结构里添加一下依赖

新建接口:

package ***;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;

public interface TestService {
    @GET("/api/home/MethodName")
    Call<Reception> API_A(@Query("param1") String param1,@Query("param2") String param2);
    // @GET注解的作用:采用Get方法发送网络请求,这么写下来最后框架能自动生成/api/home/MethodName?param1=***&param2=***的地址

// 其中返回类型为Call<*>,*是接收数据的类
    // 如果想直接获得Responsebody中的内容,可以定义网络请求返回值为Call<ResponseBody>

    @GET("/api/PDAInterface/{method}/{param1}/{param2}")
    Call<Reception> API_B(@Path("method") String method,@Path("param1") String param1,@Path("param2") String param2);
   // 这里怎么写都可以,只要和后端那里能对上就行
}

新建接收回应的类,要根据返回的信息结构对应着写

package ***;

import java.util.ArrayList;
import java.util.List;

public class Reception {
    private int code;
    private String message;
    private String[] data;

    public String[] getData(){
        return data;
    }
}

新建Retrofit封装的类

public class GetResult extends AppCompatActivity {
    @Override

    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        request();
        //使用Retrofit封装的方法
    }
    public String[] data;
    public String param1 = null;
    public String param2 = null;
   
    private OkHttpClient.Builder getClient(){
        OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
        httpClientBuilder.connectTimeout(5, TimeUnit.SECONDS);
        //add log record
        if (BuildConfig.DEBUG) {
            //打印网络请求日志
            LoggingInterceptor httpLoggingInterceptor = new LoggingInterceptor.Builder()
                    .loggable(BuildConfig.DEBUG)
                    .setLevel(Level.BASIC)
                    .log(Platform.INFO)
                    .request("请求")
                    .response("响应")
                    .build();
            httpClientBuilder.addInterceptor(httpLoggingInterceptor);
        }
        return httpClientBuilder;
    }
    public void request()
    {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http:/192.168.***.***:***")//设置网络请求URL
                .client(getClient().build())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        //创建网络请求接口的实例
        TestService request = retrofit.create(TestService.class);
        //对发送请求进行封装
        Call<Reception> call = request.getLoginResult("API_B", param1, param2);
        try {
            Response<Reception> response = call.execute();//同步
            if(response.body() != null) {
                data = response.body().getData();
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM