Saya mencoba mengakses API di localhost (127.0.0.1) dari emulator Android saya. Saya memiliki breakpoint di API.

  1. Postman menyebut API tanpa masalah.
  2. Google Chrome pada emulator menyebut API tanpa masalah.
  3. Aplikasi saya pada emulator dapat memanggil API jika saya mengubah URL ke sesuatu di Internet seperti "https://jsonplaceolder.typicode.com"
  4. Aplikasi saya pada emulator Android tidak dapat memanggil API di localhost (127.0.0.1). Itu tidak mengaktifkan breakpoint pada tindakan API.

Kode retrofit:

public class TestApiContainer {

    public interface TestApi {

        @GET("EmptyTest/test")
        Call<String> test();
    }

    static TestApi testApi;

    public static TestApi api(){
        if (testApi == null)
            testApi = new Retrofit
                    .Builder()
                    .baseUrl("https://10.0.2.2:44351")
                    .addConverterFactory(ScalarsConverterFactory.create())
                    .addConverterFactory(GsonConverterFactory.create())
                    .build()
                    .create(TestApi.class);
        return testApi;
    }
}

Panggilan Kode:

TestApiContainer.api().test().enqueue(new Callback<String>() {
    @Override
    public void onResponse(Call<String> call, Response<String> response) {
        
        if (!response.isSuccessful())
            return;
    }
});

Screenshot Postman: masukkan deskripsi gambar di sini

Ini juga berfungsi di Android Emulator Google Chrome. Screenshot: masukkan deskripsi gambar di sini

Apa yang salah dengan pengaturan saya? Bisakah Anda membantu.

1
M. Azyoksul 5 April 2021, 17:31

1 menjawab

Jawaban Terbaik

Anda mungkin mendapatkan kesalahan sertifikat, karena Anda meminta HTTPS, tetapi simbol peringatan Chrome Screenshot Anda menunjukkan kemungkinan masalah SSL.

Mencoba:

  1. Mengubah URL dasar Anda ke http://10.0.2.2:44351.
  2. mengizinkan lalu lintas cleartext untuk IP itu.

Jika ini tidak membantu, Anda harus memperbarui pertanyaan Anda dengan kesalahan logcat yang Anda lihat.

2
Jake Lee 5 April 2021, 19:31