Volley, ngrok — Не удается отправить запрос с помощью Volley в REST API ngrok

Я использую ngrok для множества проектов, в основном для голосовых приложений и API для отдыха. Мне просто нужно было использовать API для отдыха в приложении для Android. Однако, что бы я ни делал, это не работает по некоторым причинам!

Если я попробую это с http, это ошибка, которую я получаю:

E/Volley: [17118] BasicNetwork.performRequest: Unexpected response code 307 for http://1z5d90b4.ngrok.io/api/v1/users/id/
I/System.out: That didn't work! com.android.volley.ServerError 

Если я попробую ссылку https, это то, что я получаю:


com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: SSL handshake aborted: ssl=0xd7821100: I/O error during system call, Connection reset by peer

Я не знаю, почему и что происходит! Я проверил ngrok runnign на своем компьютере, и он ничего не получает. К вашему сведению, я делаю почтовый запрос по этому URL-адресу, используя Volley в Kotlin, это мой код:

        val queue = Volley.newRequestQueue(this)

    // Request a string response from the provided URL.
        val stringRequest = JsonObjectRequest(Request.Method.POST, apiUrl, params,
                Response.Listener { response ->
                    // Display the first 500 characters of the response string.
                    println("Response is: $response")
                },
                Response.ErrorListener { error ->  println("That didn't work! ${error}") })
        queue.add(stringRequest)

URL-адрес, который вы пытаетесь http://1z5d90b4.ngrok.io/api/v1/users/id/, не выглядит правильным. Может быть.. но странно, что нет конечного параметра URL, например. идентификатор пользователя?

Cody Caughlan 21.06.2019 23:29

На самом деле я вырезал URL-адрес, просто потому, что подумал, что это не нужно. но это примерно так: http://1z5d90b4.ngrok.io/api/v1/users/A328dJDFj39dj34L/statu‌​s И это работает, когда я делаю запросы с помощью Postman

Mark 22.06.2019 21:22

Кажется странным, что ваш URL-адрес http, но ошибка связана с SSL ...?

Cody Caughlan 24.06.2019 18:34

@CodyCaughlan Спасибо, что уделили время проверке кода и ответу. Я нашел проблему! Это был сетевой брандмауэр! Я просто не ожидал такого, потому что на работе у нас есть гость и рабочая сеть. Мое предположение заключалось в том, что, поскольку рабочая сеть более безопасна, если что-то работает нормально в рабочей сети, это будет работать и в гостевой сети! Однако ngrok был заблокирован в гостевой сети, и это была единственная проблема.

Mark 25.06.2019 01:10
3
4
253
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел проблему! Звучит глупо, но это был сетевой брандмауэр! Как только я переключил сеть, все заработало!!!

Просто чтобы добавить что-то, если у вас возникла проблема с HTTP-запросом, попробуйте добавить android:usesCleartextTraffic = "true" в файл AndroidManifest.xml. Это будет примерно так:

<?xml version = "1.0" encoding = "utf-8"?>
<manifest ...>

    <!--Add this line if you haven't added it yet-->
    <uses-permission android:name = "android.permission.INTERNET" />

    <application
        ...

       <!--ALSO, this can fix some of the problems-->
        android:usesCleartextTraffic = "true"


        ...>
        ...
    </application>
</manifest>

Другие вопросы по теме