๐Ÿ’ก ํ†ต์‹  ๊ธฐ์ˆ  Volley


๊ฐ„๋‹จํ•œ http ํ†ต์‹ ์„ ์œ„ํ•ด ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์ œ๊ณตํ•˜๋Š” httpํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ์š”์ฒญ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ์š”์ฒญ ํ์— ๋„ฃ์–ด์คŒ
  2. ์š”์ฒญ ํ๊ฐ€ ์•Œ์•„์„œ ์›น ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ›์Œ
  3. ์‘๋‹ต ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋‘๋ฉด ์‘๋‹ต์ด ์™”์„ ๋•Œ ์•Œ์•„์„œ ์ฒ˜๋ฆฌ

ํ”„๋กœ์ ํŠธ์—์„œ 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))
          }
}

๐Ÿ’ก ์ง€๋„ NaverMap