未解决的参考:Volley中的entrySet

时间:2018-05-03 13:44:03

标签: android kotlin android-volley entryset

我使用volley库来执行POST方法,但是我收到以下错误:未解析的引用:entrySet。

我该如何解决这个问题?

这是我的代码:

科特林

   @Throws(AuthFailureError::class)
        override fun getBody(): ByteArray? {           

            val params = params
            if (params != null && params.size > 0) {
                 return encoderParameters(params, paramsEncoding)
            }
            return null
        }

      fun encoderParameters(params: HashMap<String, String>, paramsEncoding: String): ByteArray { 
           val encodedParams = StringBuilder()

            try {
                for (entry in params.entrySet()) {
                    encodedParams.append(URLEncoder.encode(entry.key), paramsEncoding)
                            encodedParams . append ('=')
                            encodedParams . append (URLEncoder.encode(entry.value, paramsEncoding))
                            encodedParams . append ('&')
                }

                return encodedParams.toString().toByteArray(charset(paramsEncoding))

            }catch (e: UnsupportedEncodingException){
                throw RuntimeException("Encoding not supported: $paramsEncoding", e)
            }
        }

1 个答案:

答案 0 :(得分:0)

转换

            for (entry in params.entrySet()) {
                encodedParams.append(URLEncoder.encode(entry.key), paramsEncoding)
                        encodedParams . append ('=')
                        encodedParams . append (URLEncoder.encode(entry.value, paramsEncoding))
                        encodedParams . append ('&')
            }

            for ((key, value) in params) {
                encodedParams.append(URLEncoder.encode(key), paramsEncoding)
                        encodedParams . append ('=')
                        encodedParams . append (URLEncoder.encode(value, paramsEncoding))
                        encodedParams . append ('&')
            }

应该有用。