160
Сетевые
взаимодействия
File file = new File(context.getFilesDir(), "downloaded-image.png");
FileOutputStream fileOutputStream = new FileOutputStream(file);
URL url = new URL("http://moagrius.com/assets/images/hero-trips.png");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int data;
while ((data = connection.getInputStream().read()) != -1) {
fileOutputStream.write(data);
}
fileOutputStream.flush();
}
}
Kotlin
@Throws(IOException::class)
fun downloadBinaryData(context: Context) {
val file = File(context.filesDir, "downloaded-image.png")
val fileOutputStream = FileOutputStream(file)
val url = URL("http://moagrius.com/assets/images/herotrips.png")
val connection = url.openConnection() as HttpURLConnection
var data: Int = connection.inputStream.read();
while (data != -1) {
fileOutputStream.write(data)
data = connection.inputStream.read()
}
fileOutputStream.flush()
}
После вызова этого метода у вас должна появиться
точная копия файла
с мое го сайта. Если у вас это получилось – поздравляю!
Круг сетевых взаимодействий намного шире, чем было показано в этой главе, но
мы подскажем вам, куда еще можно обратиться за дополнительной информацией
:
•
OkHttp (
https
://oreil.ly/_Lk9z
) и Volley (
htt
ps://oreil.ly/1fSIz) – обе эти библио
-
теки предлагают дополнительные
сетевые API;
•
Picasso (https://oreil.ly/0VyGt), Glide (
https://oreil.ly/_
D3HE) и Volley (
https://
orei
l.ly/2gaY5) предлагают очень простые API для загрузки и отображения уда
-
ленных изображений;
•
Gson (
https://oreil.ly/RRhOS
) и Jackson (https://oreil.ly/e95wK) – превосходные
парсеры JSON, которые можно использовать для
чтения данных из REST API;
•
Retrofit (
https://
oreil.ly/lT5Z) использует библиотеку OkHttp для отправки сете
-
вых запросов и библиотеку Gson для парсинга данных в формате JSON и пред
-
лагает очень простые инструменты для чтения удаленных данных.
iOS
Поддержка сетевых взаимодействий изначально была одной из сильных сто
-
рон macOS и iOS. Система предлагает хорошо продуманный и исчерпывающий
набор объектов. Фактически большинство сторонних сетевых библиотек для
iOS основываются на классах, предлагаемых операционной системой. Среди
этих библиотек есть несколько очень хороших вариантов, как, например, Ala-
iOS
161
mofire, но большинство разработчиков предпочитают использовать встроен
-
ные инструменты. Поэтому в этой главе мы все свое внимание сосредоточим
на
инструментах, имеющихся непосредственно в iOS.
Вперед!
Do'stlaringiz bilan baham: