๊ฐ๋จํ http ํต์ ์ ์ํด ์๋๋ก์ด๋์์ ์ ๊ณตํ๋ httpํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ฌ์ฉ ๋ฐฉ๋ฒ
ํ๋ก์ ํธ์์ volley๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
val stringRequest: StringRequest = object : StringRequest(
Method.POST,
getString(R.string.prefix_uri) + url,
Response.Listener {
// ์ฑ๊ณต ์ ์ฒ๋ฆฌํ ๊ฒ
},
Response.ErrorListener {
// ์คํจ ์ ์ฒ๋ฆฌํ ๊ฒ
}) {
override fun getBody(): ByteArray {
// body ์์ฑ
return json.toString().toByteArray()
}
override fun getBodyContentType(): String? {
return "application/json; charset=utf-8"
}
override fun getHeaders(): MutableMap<String, String> {
val headerMap: MutableMap<String, String> = HashMap()
headerMap["Content-Type"] = "application/json"
headerMap["Authorization"] =
"Bearer " + MyApplication.prefs.getString("accessToken", "")
return headerMap
}
}
val queue = Volley.newRequestQueue(this)
queue.add(stringRequest)
//response๋ฅผ UTF8๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์์ค์ฝ๋
override fun parseNetworkResponse(response: NetworkResponse): Response<String?>? {
return try {
val utf8String = String(response.data, Charsets.UTF_8)
Response.success(utf8String, HttpHeaderParser.parseCacheHeaders(response))
} catch (e: UnsupportedEncodingException) {
// log error
Response.error(ParseError(e))
} catch (e: Exception) {
// log error
Response.error(ParseError(e))
}
}