Mam skrypt PHP, który uruchomi zestaw poleceń na moim Raspberry Pi (takich jak włączanie / wyłączanie diody LED) po otwarciu w przeglądarce internetowej. Chcę uruchomić ten skrypt po naciśnięciu przycisku w aplikacji na Androida za pomocą metody onClick ().

Jak wywołać HTTP w Android Studio bez ładowania strony internetowej?

-1
ToddLowell 19 listopad 2019, 18:16
1
Co masz na myśli mówiąc "przycisk wciśnięty w Android Studio" - Android Studio to IDE dla Android Development. Czy miałeś na myśli aplikację Android, wtedy twoje pytanie brzmiało "Jak mogę wysłać żądanie HTTP przez Androida", plus w jakim języku są programujesz swoją aplikację istnieją różne próby żądania HTTP w Kotlin i Java.
 – 
Strohhut
19 listopad 2019, 18:21
Tak, miałem na myśli aplikację na Androida. Językiem, którego używam, jest Java.
 – 
ToddLowell
19 listopad 2019, 18:27

1 odpowiedź

Wygląda na to, że jesteś nowy na Androidzie lub Android Studio, sugeruje się, aby spróbować publikować z trochę większym wyjaśnieniem, aby wszyscy mogli lepiej zrozumieć.
Zacznijmy
W Androidzie jest kilka bibliotek, które wysyłają żądania sieciowe. Zamierzam opublikować losowy kod i zadać ci kilka pytań, podam ci trochę zasobów i sugeruję, abyś poszedł i poszukał ich, ponieważ zajmą ci trochę czasu, Oto losowy kod:
I nie martw się, jeśli jest w kotlinie

interface ApiService {
    @GET("popular")
    suspend fun getApi(
        @Query("query") id: String
    ) : Response<Movie>

companion object RetrofitRequest {

    private val interceptor = Interceptor { chain ->
        val url = chain.request()
                .url()
                .newBuilder()
                .addQueryParameter("access_key", API_KEY)
                .build()

        val request = chain.request().newBuilder().url(url).build()

        return@Interceptor chain.proceed(request)
    }

    private val okHttpClient = OkHttpClient
            .Builder()
            .addInterceptor(interceptor)

            .build()

    @Volatile
    private var instance: ApiService? = null

    fun getInstance(): ApiService = instance ?: synchronized(this) {
        instance ?: fullResponse().also {
            instance = it
        }
    }

    private fun retrofitBuild(): Retrofit =
            Retrofit.Builder()
                    .client(okHttpClient)
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build()

    private fun fullResponse(): ApiService {
        return retrofitBuild().create(ApiService::class.java)
    }
}
}

Pytanie 1 -> Co to jest Interceptor?
Pytanie 2 -> Co to jest Okhttp?
Pytanie 3 -> Co to jest modernizacja(Retrofit2)?
Oto kilka zasobów:
https://square.github.io/retrofit/
https://androidclarified.com/okhttp-interceptor-retrofit2-example/ < br/> Wskazówka: Aby dowiedzieć się więcej o pełnym wyposażeniu aplikacji Network, wyszukaj coś takiego: Modernizacja za pomocą rxjava (rxjava to framework) lub modernizacja za pomocą kotlin Współprogramy (jeśli planujesz używać kotlin)

1
USMAN osman 19 listopad 2019, 21:46