Połączenie się bazą danych w kotlinie

Połączenie się bazą danych w kotlinie
SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Witam, jak próbuje uzyskać response z api json-placeholder to nie ma żadengo problemu. Jeśli wpisuje lokalne api, nagle response wygląda tak:

Kopiuj
2020-06-23 13:19:10.239 20231-20231/com.example.gym_app D/Requests: [Failure: Connection refused
    	com.github.kittinunf.fuel.core.FuelError$Companion.wrap(FuelError.kt:84)
    	com.github.kittinunf.fuel.core.FuelError$Companion.wrap$default(FuelError.kt:83)
    	com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:30)
    	com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:20)
    	java.util.concurrent.FutureTask.run(FutureTask.java:237)
    	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    	java.lang.Thread.run(Thread.java:761)
    Caused by: Connection refused
    	com.github.kittinunf.fuel.core.FuelError$Companion.wrap(FuelError.kt:86)
    	com.github.kittinunf.fuel.toolbox.HttpClient.executeRequest(HttpClient.kt:39)
    Caused by: java.net.ConnectException: Connection refused
    	java.net.PlainSocketImpl.socketConnect(Native Method)
    	java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:334)
    	java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:196)
    	java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
    	java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
    	java.net.Socket.connect(Socket.java:586)
    	com.android.okhttp.internal.Platform.connectSocket(Platform.java:113)
    	com.android.okhttp.Connection.connectSocket(Connection.java:196)
    	com.android.okhttp.Connection.connect(Connection.java:172)
    	com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
    	com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
    	com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
    	com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
    	com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
    	com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
    	com.github.kittinunf.fuel.toolbox.HttpClient.sendRequest(HttpClient.kt:135)
    	com.github.kittinunf.fuel.toolbox.HttpClient.doRequest(HttpClient.kt:78)
    	com.github.kittinunf.fuel.toolbox.HttpClient.executeRequest(HttpClient.kt:36)
    	com.github.kittinunf.fuel.core.requests.RequestTask.executeRequest(RequestTask.kt:23)
    	com.github.kittinunf.fuel.core.requests.RequestTask.call(RequestTask.kt:44)
    	com.github.kittinunf.fuel.core.requests.RequestTask.call(RequestTask.kt:14)
    	com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:28)
    	com.github.kittinunf.fuel.core.requests.RequestTaskCallbacks.call(RequestTaskCallbacks.kt:20)
    	java.util.concurrent.FutureTask.run(FutureTask.java:237)
    	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    	java.lang.Thread.run(Thread.java:761)
    
    ]

Dodam, że API w postmanie działa tak samo jak to z jsonplaceholder. Czy tu jest problem, że nie dodałem czegoś w manifests albo gradle ? API jest zrobione w node.js, baza danych w MYSQL.

MD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
1
  1. Masz uprawnienia Internet?
  2. Co to znaczy lokalne api?
SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0
  1. Tak mam uprawnienia w manifescie, bo normalnie otrzymuje odpowiedz od API https://jsonplaceholder.typicode.com/todos.
  2. Lokalne api, hmm zle się wyraziłem może. Chodzi mi o to ze postawilem sobie server w node.js i połączyłem się z bazą danych no i nigdzie tego nie wrzucalem tylko na localhoscie to stawiam.

No i za bardzo nie wiem gdzie jest błąd, bo każde api działa tylko nie to z mojego servera, a przecież wszystko działa jesli sprawdzam na postmanie.

MD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
1

A czy telefon/emulator widzi w ogóle ten serwer? Jak odpalisz adres serwera w przeglądarce na telefonie to uzyskujesz połączenie?

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

No sprawdziłem teraz, nie znajduje tej strony wgl, więc co mogę zrobić ? Czy to znaczy ze nie mozna pracować na lokalnym serverze i muszę to gdzieś wrzucić ?

ME
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 638
4

Podobno Retrofit pobiera dane lepiej, gdy adres api jest osiągalny. Mam pomysł, co możesz zrobić - wystaw api tak, żeby było dostępne dla klienta. Wydaje mi się, że bez tego się nie obejdzie, przykro mi.

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Dzięki bardzo za pomoc

MD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Pracujesz na telefonie czy emulatorze?

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 27
0

Obecnie na emulatorze, ale już rozwiązałem problem. Wystarczyło skorzystać z tego rozwiązania .

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.