[Android]Retrofit get request path and request information

Introducing retrofit

Introduce dependencies in the build.gradle file

    //网络
    implementation 'com.squareup.okhttp3:okhttp:3.8.1'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation('com.squareup.retrofit2:converter-gson:2.0.0-beta4') {
        exclude group: 'com.google.code.gson', module: 'gson'
    }

Define the network request interface ApiAiService.java

 



public interface ApiAiService {

    String API_API_URL = "http://192.168.10.53:8080/interface/";

    @POST("device/login")
    Call<ComResBean<DeviceLoginRes>> deviceLogin(@Body DeviceSn deviceSn);

    @GET("interior/list")
    Call<ResponseBody> getBuildingInteriors(@Query("deviceSn") String deviceSn);
}

Fulfill network request



import java.io.IOException;
import java.util.concurrent.TimeUnit;

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;


public class HttpAiClientHelper {

    private static final String TAG = "HttpAiClientHelper";

    private ApiAiService apiService;

    private static volatile HttpAiClientHelper instance;

    private HttpAiClientHelper() {
        apiService = initHttp().create(ApiAiService.class);
    }

    public static HttpAiClientHelper get() {
        if (instance == null) {
            synchronized (HttpAiClientHelper.class) {
                if (instance == null) {
                    instance = new HttpAiClientHelper();
                }
            }
        }
        return instance;
    }

    public ApiAiService getApiService() {
        return apiService;
    }

    private Retrofit initHttp() {
        Interceptor interceptor = new Interceptor() {
            @Override
            public okhttp3.Response intercept(Chain chain) throws IOException {
                Request request = chain.request();
                String url = request.url().toString();
                String logStr = url;
                Log.d("Constant",  " request url: " + logStr);
                return chain.proceed(request);
            }
        };

        OkHttpClient.Builder builder = new OkHttpClient().newBuilder()
                .addInterceptor(interceptor)
                .connectTimeout(10, TimeUnit.SECONDS)
                .readTimeout(10, TimeUnit.SECONDS)
                .writeTimeout(10, TimeUnit.SECONDS);
        OkHttpClient client = builder.build();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ApiAiService.API_API_URL)
                .client(client)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        return retrofit;
    }


    /**
     * 设备注册接口
     *
     * @param
     */
    public void deviceLogin(DeviceSn deviceSn) {
        Log.e(TAG, " deviceLogin ");
        apiService.deviceLogin(deviceSn).enqueue(new Callback<ComResBean<DeviceLoginRes>>() {
            @Override
            public void onResponse(Call<ComResBean<DeviceLoginRes>> call, Response<ComResBean<DeviceLoginRes>> response) {
                if (null == response.body()) {
                    return;
                }
                if (response.body().getCode() == 200) {
                    //登录TOKEN缓存
                    SharedPreferenceUtil.setLoginToken(response.body().getData().getToken());
                }
            }

            @Override
            public void onFailure(Call<ComResBean<DeviceLoginRes>> call, Throwable t) {
                Log.e(TAG, " deviceLogin onFailed send " + t.getMessage());
            }
        });

    }

    public void getBuildingInteriors(String deviceSn, Callback<ResponseBody> callback) {
        apiService.getBuildingInteriors(deviceSn).enqueue(callback);
    }
}

 

Get the full request path

 

Guess you like

Origin blog.csdn.net/xfb1989/article/details/106411357