0
0
Android Kotlinmobile~20 mins

GET and POST requests in Android Kotlin - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Network Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
ui_behavior
intermediate
2:00remaining
What happens when this GET request code runs?
Consider this Kotlin code snippet in an Android app making a GET request. What will be the output in the log if the server responds with status 200 and body "Hello World"?
Android Kotlin
val url = URL("https://example.com/api/greet")
val connection = url.openConnection() as HttpURLConnection
connection.requestMethod = "GET"
val responseCode = connection.responseCode
val response = connection.inputStream.bufferedReader().readText()
Log.d("HTTP", "Code: $responseCode, Body: $response")
ACode: 200, Body: null
BCode: 404, Body: Not Found
CCode: 200, Body: Hello World
DApp crashes with IOException
Attempts:
2 left
💡 Hint
Think about what responseCode and inputStream return when the server responds successfully.
📝 Syntax
intermediate
2:00remaining
Which option correctly sends a POST request with JSON body?
You want to send a POST request with JSON data in Kotlin Android. Which code snippet correctly sets up the connection and sends the JSON string?
A
val url = URL("https://example.com/api/data")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.doOutput = true
conn.setRequestProperty("Content-Type", "application/json")
val json = "{\"name\":\"John\"}"
conn.outputStream.write(json.toByteArray())
B
val url = URL("https://example.com/api/data")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
val json = "{\"name\":\"John\"}"
conn.outputStream.write(json.toByteArray())
C
val url = URL("https://example.com/api/data")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "GET"
conn.doOutput = true
val json = "{\"name\":\"John\"}"
conn.outputStream.write(json.toByteArray())
D
val url = URL("https://example.com/api/data")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.doInput = true
conn.setRequestProperty("Content-Type", "application/json")
val json = "{\"name\":\"John\"}"
conn.outputStream.write(json.toByteArray())
Attempts:
2 left
💡 Hint
Remember to enable output and set the content type for JSON when sending POST data.
lifecycle
advanced
2:00remaining
What is the risk of running network requests on the main thread?
In Android Kotlin, what happens if you run a GET or POST request on the main UI thread?
AThe app crashes immediately with a NullPointerException
BThe app UI freezes and may show an Application Not Responding (ANR) error
CThe request runs faster because it uses the main thread
DNothing special happens; network requests are safe on the main thread
Attempts:
2 left
💡 Hint
Think about what happens when the UI thread is blocked for too long.
🔧 Debug
advanced
2:00remaining
Why does this POST request code throw a ProtocolException?
This Kotlin code throws java.net.ProtocolException: cannot write output after reading input. Why?
Android Kotlin
val url = URL("https://example.com/api/post")
val conn = url.openConnection() as HttpURLConnection
conn.requestMethod = "POST"
conn.doOutput = true
val response = conn.inputStream.bufferedReader().readText()
conn.outputStream.write("data".toByteArray())
ABecause requestMethod POST is invalid for this URL
BBecause doOutput must be false for POST requests
CBecause outputStream.write() requires a flush() call first
DBecause inputStream was read before enabling output and writing data
Attempts:
2 left
💡 Hint
Check the order of reading input and writing output streams.
🧠 Conceptual
expert
3:00remaining
How to handle JSON response parsing after a GET request?
After a successful GET request returning JSON data, which approach correctly parses the JSON string into a Kotlin data class?
Android Kotlin
data class User(val id: Int, val name: String)

val jsonResponse = "{\"id\":1, \"name\":\"Alice\"}"
Aval user = Gson().fromJson(jsonResponse, User::class.java)
Bval user = jsonResponse.toString() as User
Cval user = User(jsonResponse["id"], jsonResponse["name"])
Dval user = JSONObject(jsonResponse).toString()
Attempts:
2 left
💡 Hint
Use a JSON library to convert JSON string to Kotlin objects.