Kotlin:
একটি ওয়েবপেজ ডাউনলোড করা
কিভাবে:
আসুন কোটলিনের HttpURLConnection
ব্যবহার করে দ্রুত একটি ওয়েব পেজ আনি। আমরা সুচারু পটভূমি অপারেশনের জন্য করুটিনসও ব্যবহার করবো। এখানে একটি মূলধারা:
import java.net.HttpURLConnection
import java.net.URL
import kotlinx.coroutines.*
fun main() = runBlocking {
val url = "http://example.com"
val result = withContext(Dispatchers.IO) {
downloadWebPage(url)
}
println(result)
}
fun downloadWebPage(urlAddress: String): String {
val url = URL(urlAddress)
val connection = url.openConnection() as HttpURLConnection
চেষ্টা করুন {
connection.connect()
return connection.inputStream.bufferedReader().use { it.readText() }
} অবশেষে {
connection.disconnect()
}
}
নমুনা আউটপুট:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</html>
ভালো লাগলো, তাই না? আপনি ওয়েব পেজের এইচটিএমএল পেয়ে গেছেন!
গভীর ডুব
ওয়েব পেজ ডাউনলোড করা ওয়েব এর শুরু থেকে পুরোনো প্রক্রিয়া। ৯০ এর দশকে, লোকেরা wget
এবং curl
এর মতো কমান্ড-লাইন টুলস ব্যবহার করত। এগুলো এখনো ব্যবহার হয় কিন্তু আরও নিয়ন্ত্রণ বা অ্যাপে ওয়েব সামগ্রী আনার কাজে যখন আপনি ইচ্ছা করেন, আপনি কোডিং করেন।
কোটলিনে, আপনি জাভার HttpURLConnection
বা OkHttp বা Ktor এর মতো লাইব্রেরিগুলো ব্যবহার করতে পারেন যা অধিক বৈশিষ্ট্যাবলী সহ শক্তিশালী পদ্ধতি প্রদান করে। উপরের উদাহরণটি সাধারণ; বাস্তব জীবনে, আপনি ভুল সংশোধন, রিডিরেক্ট, এবং পারফরমেন্সের বিষয়ে চিন্তা করতেন। হয়তো রিট্রাই অথবা টাইমআউট যোগ করতে পারেন? এবং ভিন্ন ক্যারেক্টার এনকোডিংস এবং কন্টেন্ট টাইপগুলি সম্পর্কিত আচরণ সম্পর্কে ভুলবেন না।
আপনি থ্রেডিংও বিবেচনা করতেন। বিশাল পেজ আনতে গিয়ে মূল থ্রেডকে ঝুলিয়ে রাখতে চাইবেন না, তাই না? এখানেই করুটিনস প্রয়োজন - এগুলো আপনার অ্যাপকে সাড়া দিতে দেয়, পটভূমিতে আনতে ডাউনলোড করতে দেয় ঘাম ছাড়া।
দেখুন আরও
- OkHttp: https://square.github.io/okhttp/
- Ktor Client: https://ktor.io/docs/client.html
- Kotlin Coroutines: https://kotlinlang.org/docs/coroutines-overview.html
- Java HttpURLConnection: https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html
এটা সূত্রটি—পেজটি পেতে, এটা সম্বন্ধে বুদ্ধিমান হতে, এবং সর্বদা ডাটা এবং এর উৎসকে সম্মান করা। সুখী কোডিং!