не удалось получить доступ к локальным маршрутам приложения laravel в андроид студию - PullRequest
0 голосов
/ 11 мая 2018

Я занимаюсь разработкой приложения для Android в Android Studio3, спиной которого является laravel. Для локального сервера я создал виртуальный сервер от artizan. Теперь проблема заключается в подключении локального сервера (127.0.0.1:8000) к Android, и для этого я перепробовал слишком много baseUrl в приведенном ниже интерфейсе, например:

10.0.2.2: 8008, 10.0.3.2:8000, IP4, .............,: /

Интерфейс:

interface ApiInterface {

    @GET("stocks.json")
    fun getStocks(): Call<StockResponse>

    companion object {
        val BASE_URL = "http://192.168.1.106:8000/api/"

        fun getClient(): ApiInterface{
            val retrofit = Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build()

            return retrofit.create(ApiInterface::class.java)
        }
    }
}

И, наконец, я попробовал внешний сервер для этого проекта, чтобы он работал, но для локального это не так, приятель, я был бы признателен, если бы вы решили эту растерянную проблему ...


ОБНОВЛЕНИЕ: Ребята, спасибо за ваш ответ, я действительно пробовал много способов, и, наконец, я обнаружил, что маршруты laravel api терпят неудачу в андроид-студии и не основаны. Это означает:

http://192.168.1.106:8000/file.json  (Worked-> specific file in local server )
http://192.168.1.106:8000/api/file  (Not Worked-> laravel route api)

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Я нашел это начиная отсюда: D.
во-первых, вы не можете использовать val BASE_URL = "http://[ip_add]:[port]/api/"
вы меняете его на что-то вроде этого:
private static final String BASE_URL = "http://my_ip_address/path/to/project/folder/relative/to/server/root"
Итак, было бы так:

private static final String BASE_URL = "http://[my_ip_address]:[port]/[project_folder_name]/public/api/"


и готово;) ... надеюсь, это поможет!

0 голосов
/ 11 мая 2018

Я не уверен, что веб-сервер ремесленника слушает какие-либо запросы извне localhost.Вы можете настроить его таким образом.В качестве альтернативы, вы можете разместить свой проект Laravel локально через Apache или Nginx и настроить веб-сервер на прием соединений из локальной сети.

https://stackoverflow.com/a/24011132/9776011

https://serverfault.com/a/667800

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