尝试连接 api 时 onResponse 不成功

onResponse is not succesful when trying to connect with an api

我正在尝试从 larntech 检索图像并将图像膨胀到 recyclerview 中。 但是当“通过”onResponse 时它并没有成功,它只是出现了吐司消息“错误”。因此它没有在我的堆栈跟踪中显示任何内容 - 如果我错了请告诉我,我还是个初学者。 我希望有人能指出我正确的方向。

  public class MainActivity extends AppCompatActivity {

private List<ImagesResponse> imagesResponseList = new ArrayList<>();
RecyclerView rv;
CustomAdapter adapter;

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

    RecyclerView.LayoutManager layoutManager = new GridLayoutManager(this, 2);
    RecyclerView recyclerView = (RecyclerView) findViewById(R.id.grid);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(layoutManager);


    adapter = new CustomAdapter(new ArrayList<ImagesResponse>(), this);
    recyclerView.setAdapter(adapter);



    getAllImages();
}

public void getAllImages() {
    final Call<List<ImagesResponse>> imagesResponse = ApiClient.getInterface().getAllImages();
    imagesResponse.enqueue(new Callback<List<ImagesResponse>>() {
        @Override
        public void onResponse(Call<List<ImagesResponse>> call, Response<List<ImagesResponse>> response) {
            if (response.isSuccessful()) {
                String message = "success";
                Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();

                imagesResponseList = response.body();
                getAllImages();

            } else {
                String message = "error";
                Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailure(Call<List<ImagesResponse>> call, Throwable t) {

            String message = t.getLocalizedMessage();
            Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
        }
    });

}

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> {
    private List<ImagesResponse> imagesResponses;
    private Context mContext;
    private LayoutInflater layoutInflater;


    public CustomAdapter(List<ImagesResponse> imagesResponses, Context mContext) {
        this.imagesResponses = imagesResponses;
        this.mContext = mContext;
        this.layoutInflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View view = inflater.inflate(R.layout.row_grid_item, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

        ImagesResponse photoItem = imagesResponses.get(position);
        Glide.with(mContext).load(photoItem.getUrl())
                .error(R.drawable.ic_cloud_off_red)
                .placeholder(R.drawable.ic_cloud_off_red)
                .into(holder.image_view);


    }

    @Override
    public int getItemCount() {
        return ((imagesResponses != null) && (imagesResponses.size() != 0) ? imagesResponses.size() : 0);
    }

    void setImages(ArrayList<ImagesResponse> newImages) {
        imagesResponses = newImages;
        notifyDataSetChanged();
    }


    class ViewHolder extends RecyclerView.ViewHolder {
        ImageView image_view = null;
        RelativeLayout frontLayout;


        public ViewHolder(View itemView) {
            super(itemView);
            this.image_view = itemView.findViewById(R.id.images);

        }
    }



}
 }

 public class ApiClient {

private static Retrofit getRetrofit() {

    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
    httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

    OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(httpLoggingInterceptor)
            .build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http:/api.larntech.net/")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    return retrofit;
}

public static ApiInterface getInterface(){
    ApiInterface apiInterface = getRetrofit().create(ApiInterface.class);
return apiInterface;
}

在 ApiInterface.java class

@Headers({ "Content-Type: application/json;charset=UTF-8"})
@GET
Call<List<Users>> getUser(
        @Url String url
);

在 MainActivity 中 class

  RecyclerView recyclerView;
  ApiInterface service;
  Retrofit retrofit;
  List<UserModelList> usersList = new ArrayList<>();
  UserListFollowAdapters adapter;

  public MainActivity() {
    // Required empty public constructor
    OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.MINUTES)
            .readTimeout(10, TimeUnit.MINUTES)
            .writeTimeout(10, TimeUnit.MINUTES)
            .build();
    retrofit = new Retrofit.Builder()
            .baseUrl(RetrofitGenerator.BASE_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();
    service = retrofit.create(ApiInterface.class);
   this.runOnUiThread(this::getUsers);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activitymain);
     recyclerView = findViewById(R.id.recycler_userlist);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.addItemDecoration(new 
    DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
    recyclerView.setLayoutManager(layoutManager);
    adapter = new UserListFollowAdapters(this, usersList);
    recyclerView.setAdapter(adapter);
}

public void getUsers(){
 Call<List<Users>> call = service.getUser("http://www.example.com/get/users");
        call.enqueue(new Callback<List<Users>>() {
            @Override
            public void onResponse(Call<List<Users>> call, Response<List<Users>> response) {
                List<Users> serverResponse = response.body();
                userslist.addAll(serverResponse);
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onFailure(Call<ResponseModel> call, Throwable t) {
                Toast.make(t.getMessage());

            }
        });

}