Android app chat

0

Cześć mam problem z kodem.
https://github.com/AHE-Android/chat/issues/27
Jeżeli ktoś będzie chciał rzucić na kod i błąd będzie mi miło ;)
Pozdrawiam

3

Nam z kolei byłoby miło, gdybyś opisał jak ułożony jest Twój kod, jak uruchomić go lokalnie, w jakich okolicznościach pojawia się błąd oraz o co w ogóle chodzi ;-)

Pamiętaj, że większość osób ani nie patrzyła na Twój ekran, gdy to pisałeś, ani siedzi w Twojej głowie.

0

Należałoby otworzyć projekt w android studio i uruchomić, stworzyłem API w PHP do komunikacji z serwerem. Obecnie tworzę prostą aplikację do obsługę API w androdzie. Obecnie próbuje wysłać zapytanie HTTP i pobrać jego odpowiedź w Javie postawiłem na okhttp3, ponieważ musi to działać asynchronicznie, bo inaczej rzuca wyjątkiem NetworkOnMainThreadException. Obecnie właśnie próbuje wykorzystywać "enqueue" i mam błąd OkHttp Dispatcher oraz Can't toast on a thread that has not called Looper.prepare()

W przykładzie na Githubie jest wykonywane
REJESTRACJA [POST]: https://garlic-dragon.000webhostapp.com/registration.php
Przyjmuje parametry login, hasło.

OkHttpClient zapytanie = new OkHttpClient();
                RequestBody requestBody = new FormBody.Builder()
                        .add("login", log)
                        .add("password", password)
                        .build();
                final Request request = new Request.Builder()
                        .header("Content-Type", "application/x-www-form-urlencoded")
                        //.url("http://192.168.43.168:81/PHPv2/registration.php")
                        .url("https://garlic-dragon.000webhostapp.com/registration.php")
                        .post(requestBody)
                        .build();
                zapytanie.newCall(request).enqueue(new Callback() {
                    @Override
                    public void onResponse(@NotNull Call call, @NotNull Response response) {
                        if (response.isSuccessful()) {
                            //Succes
                            String result = response.body().toString();
                            Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
                        } else {
                            // Request not successful
                            Toast.makeText(getApplicationContext(), "This is my fail!", Toast.LENGTH_LONG).show();
                        }
                    }
                    @Override
                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
                        // Request not successful
                        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
                    }
                });
1

Problem bierze się stąd że próbujesz pokazać Toast z wątku innego niż UI.
Na stackoverflow masz odpowiedzi jak ten problem rozwiązać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1