ПОЛУЧИТЬ запрос с параметрами, используя Retrofit Android - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть API с 4 параметрами и запрос на получение с использованием модернизации.Мой API в порядке.Я проверил это через Почтальон.Но когда я вызываю мой API, он не дает правильного результата.

API.JAVA

public interface Api {
   @GET("MAttendance/api/CheckInOut/CheckInOut")
   Call<SignUpResponse> tracking(
        @Query("UserID") int user_id,
        @Query("Latitude") String Latitude,
        @Query("Longitude") String Longitude,
        @Query("CheckType") String CheckType,
        @Query("CheckTime") String CheckTime);}

Пожалуйста, проверьте скриншот для ответа JSON.

Result.java

public class Result1 {
@SerializedName("Status")
@Expose
private String Status;
@SerializedName("ID")
@Expose
private int ID;

public String getStatus() {
    return Status;
}
public void setStatus(String status) {
    Status = status;
}
public int getID() {
    return ID;
}
public void setID(int ID) {
    this.ID = ID;
}}

Вот Зов

Fragment.java

Api userAPICall = RetroFitEngine.getRetrofit().create(Api.class);
    Call<Result1> callEnqueue = userAPICall.tracking(userId, latitude, longitude, checkin, timeDate);
    callEnqueue.enqueue(new Callback<Result1>() {
        @Override
        public void onResponse(Call<Result1> call, Response<Result1> response) {
            result1 = response.body();
            Toast.makeText(getActivity(), "response:" + result1, 
            Toast.LENGTH_SHORT).show();
             if (result1 != null) {
                 if (result1.getSttatus().equals("SUCCESS")) {
                     Toast.makeText(getActivity(), "sucessfully", 
                     Toast.LENGTH_SHORT).show();
                }
                Toast.makeText(getActivity(), result1.getSttatus(), 
                Toast.LENGTH_SHORT).show();
            }
        }
        @Override
        public void onFailure(Call<Result1> call, Throwable t) {

            Toast.makeText(getActivity(), "Failure Response", 
                                Toast.LENGTH_SHORT).show();
        }
    });
}

Вот клиент Retrofit и базовый URL

RetrofitEngine

public class RetroFitEngine {

public static String baseUrl = "http://global.timetick.ae/";

public static OkHttpClient getClient() {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(interceptor)
            .connectTimeout(10, TimeUnit.SECONDS)
            .readTimeout(60, TimeUnit.SECONDS)
            .retryOnConnectionFailure(true)
            .build();
    client.connectionPool().evictAll();
    return client;
}

public static Retrofit getRetrofit() {
    OkHttpClient client = getClient();
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(baseUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .client(client)
            .build();

    return retrofit;
}

}

Я пытаюсь отправить 4 параметра с помощью модификации, но ответ всегда Status: ОШИБКА

Пожалуйста, проверьте Ответ почтальона:

Вот мой ответ и отправьте GET-запрос с 4 параметрами, чтобы результат отображался правильно, но модифицированное шоу показывает Статус: ОШИБКА

Image 1

Вот ответ Retrofit в андроид студии:

Image 2

1 Ответ

0 голосов
/ 25 февраля 2019

Вам просто нужно заменить @Query на @Header

public interface Api {
   @GET("MAttendance/api/CheckInOut/CheckInOut")
   Call<SignUpResponse> tracking(
        @Header("UserID") int user_id,
        @Header("Latitude") String Latitude,
        @Header("Longitude") String Longitude,
        @Header("CheckType") String CheckType,
        @Header("CheckTime") String CheckTime);
}

на @Query Ваш запрос был: http://global.timetick.ae/MAttendance/api/CheckInOut/CheckInOut?UserID=2&Latitude=111&Longitude=333&CheckType=OUT&CheckTime=2019-02-21%2011:11:11.000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...