FileNotFoundException для URL.readText в androidTest - PullRequest
0 голосов
/ 13 ноября 2018

В приложении для Android, когда я использую класс Kotlin из модульного теста, макет android.util.Base64 тест пройден успешно. Запуск теста в качестве андроид-теста завершается неудачно, когда:

URL(urlRequestToken).readText()

бросает FileNotFoundException для https URL. Манифест имеет сетевое разрешение (если это не так, ошибка была другой). Копирование / вставка urlRequestToken в браузер дает ожидаемый результат, но загрузка его с помощью URL с телефона в тесте всегда выдает FileNotFoundException.

Проверка включает проверку сети с помощью ConnectivityManager, которая прошла успешно, поэтому существует сеть.

Есть ли что-то еще, что мне нужно сделать, чтобы получить доступ к URL из теста?

1 Ответ

0 голосов
/ 15 ноября 2018

Оказывается, FileNotFoundException совершенно неверно и не имеет ничего общего с файлом, который не был найден.Модульный тест работает так же, как и android.util.Base64, используя java.util.Base64.Разница в android.util.Base64 по умолчанию использует обтекание, которое добавляет \n в конец закодированной строки, которая ломает подпись Flickr.Настоящая ошибка - HTTP 401, поскольку подпись недействительна, но URL.readText сообщает о ней как FileNotFoundException.

. Решение в Android заключается в использовании:

Base64.encodeToString(hmac.doFinal(baseString.toByteArray()), Base64.NO_WRAP)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...