From ec53cbd6833977d5f6ffaf6982fe20f105ccedb2 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Mon, 5 Oct 2020 22:18:02 +0200 Subject: [PATCH] Fix content-type not being parsed when getting url rss type --- .../com/readrops/api/localfeed/LocalRSSDataSourceTest.kt | 4 ++-- .../java/com/readrops/api/localfeed/LocalRSSDataSource.kt | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/androidTest/java/com/readrops/api/localfeed/LocalRSSDataSourceTest.kt b/api/src/androidTest/java/com/readrops/api/localfeed/LocalRSSDataSourceTest.kt index f51ce144..017fd9fa 100644 --- a/api/src/androidTest/java/com/readrops/api/localfeed/LocalRSSDataSourceTest.kt +++ b/api/src/androidTest/java/com/readrops/api/localfeed/LocalRSSDataSourceTest.kt @@ -167,7 +167,7 @@ class LocalRSSDataSourceTest { @Test fun isUrlResourceSuccessfulTest() { mockServer.enqueue(MockResponse().setResponseCode(HttpURLConnection.HTTP_OK) - .addHeader("Content-Type", "application/atom+xml")) + .addHeader("Content-Type", "application/atom+xml; charset=UTF-8")) assertTrue(localRSSDataSource.isUrlRSSResource(url.toString())) } @@ -182,7 +182,7 @@ class LocalRSSDataSourceTest { @Test fun isUrlRSSResourceBadContentTypeTest() { mockServer.enqueue(MockResponse().setResponseCode(HttpURLConnection.HTTP_OK) - .addHeader("Content-Type", "application/xml") + .addHeader("Content-Type", "application/xml; charset=UTF-8") .setBody(" ")) assertFalse(localRSSDataSource.isUrlRSSResource(url.toString())) diff --git a/api/src/main/java/com/readrops/api/localfeed/LocalRSSDataSource.kt b/api/src/main/java/com/readrops/api/localfeed/LocalRSSDataSource.kt index 594857bb..20a38da9 100644 --- a/api/src/main/java/com/readrops/api/localfeed/LocalRSSDataSource.kt +++ b/api/src/main/java/com/readrops/api/localfeed/LocalRSSDataSource.kt @@ -73,7 +73,10 @@ class LocalRSSDataSource(private val httpClient: OkHttpClient) { val response = queryUrl(url, null) return if (response.isSuccessful) { - val contentType = response.header(LibUtils.CONTENT_TYPE_HEADER) + val header = response.header(LibUtils.CONTENT_TYPE_HEADER) + ?: return false + + val contentType = LibUtils.parseContentType(header) ?: return false var type = LocalRSSHelper.getRSSType(contentType)