因此,我找到了一种在Volley中发送带有x-www-form-urlencoded的POST请求的方法,并在stackoverflow中找到了以下帖子
Send form-urlencoded parameters in post request android volley
但是,当我尝试执行几乎相同的操作时,由于某种原因它不起作用。
我创建了一个新类,该类扩展了StringRequest
并覆盖了getBodyContentType
和getParams
方法
那之后我的课看起来像这样:
protected inner class LoginRequest(val data : LoginData,callback: (String) -> Unit,errorCallback: (VolleyError) -> Unit) : StringRequest(Request.Method.POST,LOGIN_URL,callback,errorCallback){
override fun getParams(): HashMap<String, String>{
//Erstellen der passenden Parameter
val map = HashMap<String,String>()
map["username"] = this.data.username
map["password"] = this.data.password
return map
}
override fun getBodyContentType() : String{
return "application/x-www-form-urlencoded; charset=UTF-8"
}
override fun parseNetworkResponse(response: NetworkResponse?): Response<String> {
val date = response!!.headers["ValidUntil"]!!
loginHeaderData = LoginHeaderData(response.headers!!["JWT"], DateFormatter.parseDate(date))
return super.parseNetworkResponse(response)
}
}
但是,当我发送此请求并在Android-Profiler中对其进行查找时,它表明该请求不包含任何内容: