@@ -22,6 +22,8 @@ import java.net.HttpURLConnection
22
22
import java.nio.ByteBuffer
23
23
import java.nio.charset.CodingErrorAction
24
24
import org.apache.commons.io.IOUtils
25
+ import org.apache.http.HttpHeaders
26
+ import org.apache.http.entity.ContentType
25
27
26
28
object AnonymousFeedback {
27
29
@@ -206,7 +208,11 @@ object AnonymousFeedback {
206
208
continue
207
209
}
208
210
209
- data = connection.inputStream.reader().use(InputStreamReader ::readCharSequence).toString()
211
+ val charset = connection.getHeaderField(HttpHeaders .CONTENT_TYPE )?.let {
212
+ ContentType .parse(it).charset
213
+ } ? : Charsets .UTF_8
214
+
215
+ data = connection.inputStream.reader(charset).readText()
210
216
211
217
response = Gson ().fromJson(data)
212
218
list.addAll(response)
@@ -219,18 +225,21 @@ object AnonymousFeedback {
219
225
return list
220
226
}
221
227
222
- private fun getNextLink (link : String? ): String? {
223
- if (link == null ) {
228
+ private fun getNextLink (linkHeader : String? ): String? {
229
+ if (linkHeader == null ) {
224
230
return null
225
231
}
226
- val lines = link .split(" ," )
227
- for (line in lines ) {
228
- if (! line .contains(" rel=\" next\" " )) {
232
+ val links = linkHeader .split(" ," )
233
+ for (link in links ) {
234
+ if (! link .contains(" rel=\" next\" " )) {
229
235
continue
230
236
}
231
237
232
- val parts = line.split(" ;" )
233
- return parts[0 ].substring(1 , parts[0 ].length - 1 )
238
+ val parts = link.split(" ;" )
239
+ if (parts.isEmpty()) {
240
+ continue
241
+ }
242
+ return parts[0 ].trim().removePrefix(" <" ).removeSuffix(" >" )
234
243
}
235
244
236
245
return null
0 commit comments