![](/img/trans.png)
[英]Sending string data to server script using volley in android fragment
[英]Sending a header for authorization with Volley in Android using Kotlin
我正在嘗試通過在提交注冊詳細信息后發送到他們的電子郵件的驗證碼來驗證用戶。
我有以下代碼來收聽通過電子郵件收到的代碼/pin,但我不確定我是否以正確的方式添加標頭/承載令牌,因為我在驗證時收到服務器錯誤。
請協助
var codeEntered:String? = null
txt_pin_entry.setOnPinEnteredListener {
codeEntered = "$it"
Toast.makeText(context!!.applicationContext, "inside $codeEntered", Toast.LENGTH_SHORT).show()
}
submitBtn.setOnClickListener {
val url = "https://fathomless-badlands-69782.herokuapp.com/api/auth/verify"
val params = HashMap<String, String?>()
params["Authorization"] = "Bearer $tokenCode"
params["code"] = codeEntered
Toast.makeText(context!!.applicationContext, "outside $codeEntered", Toast.LENGTH_SHORT).show()
val jsonObject = JSONObject(params as Map<*, *>)
val request = JsonObjectRequest(Request.Method.PUT, url, jsonObject,
Response.Listener { response ->
try{
Log.i("Registration", "Response $response")
}catch (e: Exception){
Log.e("Registration", "Response $e")
Toast.makeText(context!!.applicationContext, "Response $response", Toast.LENGTH_SHORT).show()
}
}, Response.ErrorListener {
Log.e("Registration", "Response $it")
Toast.makeText(context!!.applicationContext, "Response $it", Toast.LENGTH_SHORT).show()
})
VolleySingleton.getInstance(context!!.applicationContext).addToRequestQueue(request)
val actionToVerificationResult = CodeVerificationFragmentDirections.actionToVerificationResult()
Navigation.findNavController(it).navigate(actionToVerificationResult)
}
}
API 需要如下請求
{
code: String
}
你在下面試過這個嗎
override fun getHeaders(): MutableMap<String, String> {
val headers = HashMap<String, String>()
headers["code"] = Your code
return headers
}
例子:
class ServiceVolley : ServiceInterface {
val TAG = ServiceVolley::class.java.simpleName
val basePath = "https://your/backend/api/"
override fun post(path: String, params: JSONObject, completionHandler: (response: JSONObject?) -> Unit) {
val jsonObjReq = object : JsonObjectRequest(Method.POST, basePath + path, params,
Response.Listener<JSONObject> { response ->
Log.d(TAG, "/post request OK! Response: $response")
completionHandler(response)
},
Response.ErrorListener { error ->
VolleyLog.e(TAG, "/post request fail! Error: ${error.message}")
completionHandler(null)
}) {
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers.put("Content-Type", "application/json")
return headers
}
}
BackendVolley.instance?.addToRequestQueue(jsonObjReq, TAG)
}
}
返回標頭或覆蓋 getHeaders
val request = JsonObjectRequest(Request.Method.PUT, url, jsonObject,
Response.Listener { response ->
try{
Log.i("Registration", "Response $response")
}catch (e: Exception){
Log.e("Registration", "Response $e")
Toast.makeText(context!!.applicationContext, "Response $response", Toast.LENGTH_SHORT).show()
}
}, Response.ErrorListener {
Log.e("Registration", "Response $it")
Toast.makeText(context!!.applicationContext, "Response $it", Toast.LENGTH_SHORT).show()
}){
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers.put("Content-Type", "application/json")
headers.put("Authorization", "Bearer $tokenCode")
return headers
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.