From bdb3d954fcc481c8891e31fd04e9894a56ea983d Mon Sep 17 00:00:00 2001 From: Matte23 Date: Wed, 2 Sep 2020 19:45:33 +0200 Subject: [PATCH] Use OkHttp as HTTP client --- app/build.gradle | 1 + .../underdesk/circolapp/server/DataFetcher.kt | 32 +++++++------------ 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a61448b..290b6ac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,6 +54,7 @@ dependencies { testImplementation 'junit:junit:4.13' androidTestImplementation 'androidx.test:runner:1.3.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + implementation 'com.squareup.okhttp3:okhttp:4.8.1' implementation 'com.google.code.gson:gson:2.8.6' implementation 'org.jsoup:jsoup:1.13.1' } diff --git a/app/src/main/java/net/underdesk/circolapp/server/DataFetcher.kt b/app/src/main/java/net/underdesk/circolapp/server/DataFetcher.kt index 9c79001..e8a1178 100644 --- a/app/src/main/java/net/underdesk/circolapp/server/DataFetcher.kt +++ b/app/src/main/java/net/underdesk/circolapp/server/DataFetcher.kt @@ -23,16 +23,17 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import net.underdesk.circolapp.data.Circular import net.underdesk.circolapp.server.pojo.Response +import okhttp3.OkHttpClient +import okhttp3.Request import org.jsoup.Jsoup import java.io.IOException -import java.net.URL -import javax.net.ssl.HttpsURLConnection class DataFetcher { companion object { const val ENDPOINT_URL = "https://www.curiepinerolo.edu.it/wp-json/wp/v2/pages/5958" val gson = Gson() + val client = OkHttpClient() } @Throws(IOException::class) @@ -60,29 +61,18 @@ class DataFetcher { @Throws(IOException::class) private suspend fun retrieveDataFromServer(): String? { - var connection: HttpsURLConnection? = null + val request = Request.Builder() + .url(ENDPOINT_URL) + .build() return withContext(Dispatchers.IO) { - try { - connection = (URL(ENDPOINT_URL).openConnection() as? HttpsURLConnection) - connection?.run { - // Set GET HTTP method - requestMethod = "GET" + val response = client.newCall(request).execute() - setRequestProperty("Accept-Encoding", "none") - - connect() - if (responseCode != HttpsURLConnection.HTTP_OK) { - throw IOException("HTTP error code: $responseCode") - } - - inputStream?.reader()?.readText() - } - } finally { - // Close Stream and disconnect HTTPS connection. - connection?.inputStream?.close() - connection?.disconnect() + if (!response.isSuccessful) { + throw IOException("HTTP error code: ${response.code})") } + + response.body?.string() } } } \ No newline at end of file