android - 无效请求缺少授权类型
问题描述
我正在使用 Android 对我的 OAUTH2 身份验证进行后调用,试图获取我的承载令牌。
我正在使用 Kotlin 语言,并且正在使用 Volley 进行发布请求。
问题是,当我使用 Postman 发出我的 post 请求时,它工作得非常完美,但是当我使用 Volley post 以同样的方式发出请求时,我的 API REST 大喊:无效的请求异常,缺少授权类型。
我的机器人大喊: http: //192.168.1.254 :8081/oauth/token 的意外响应代码 400
安卓通话:
private fun loginUser() {
var grant_type = "password"
var username = etUsername.text.toString()
var password = etPassword.text.toString()
val credentials = "angularapp"+":"+"12345"
// Post parameters
// Form fields and values
val params = HashMap<String,String>()
params["grant_type"] = grant_type
params["username"] = username
params["password"] = password
val jsonObject = JSONObject(params)
val request = CustomJsonObjectRequestBasicAuth(Request.Method.POST, Network.API_URL_LOGIN,jsonObject,
Response.Listener{ response->
Log.d("RESPONSEEEE", response.toString())
try {
// Parse the json object here
Log.d("Response" ,response.toString())
val intent = Intent(this, PatientsActivity::class.java)
intent.putExtra(Tags.FLOOR.toString(), ((spiFloor?.selectedItemId!!+1)))
startActivity(intent)
}catch (e:Exception){
e.printStackTrace()
}
}, Response.ErrorListener{
Log.d("ERROR", "VOLLEY ERROR")
},credentials
)
// Add the volley request to request queue
VolleySingleton.getInstance(this).addToRequestQueue(request)
}
// Class to make a volley json object request with basic authentication
class CustomJsonObjectRequestBasicAuth(
method:Int, url: String,
jsonObject: JSONObject?,
listener: Response.Listener<JSONObject>,
errorListener: Response.ErrorListener,
credentials:String
)
: JsonObjectRequest(method,url, jsonObject, listener, errorListener) {
private var mCredentials:String = credentials
@Throws(AuthFailureError::class)
override fun getHeaders(): Map<String, String> {
val headers = HashMap<String, String>()
headers["Content-Type"] = "application/x-www-form-urlencoded"
val auth = "Basic " + Base64.encodeToString(mCredentials.toByteArray(), Base64.NO_WRAP)
headers["Authorization"] = auth
System.out.println(headers.toString())
return headers
}
}
解决方案
推荐阅读
- sql - SQL - 在列中查找具有特定值组合的行
- python - TypeError 虽然形状相同:如果不是 (target.size() == input.size()): 'int' object is not callable
- spring - 请求被拒绝,因为在 tomcat 中部署 spring boot 应用程序时 URL 未规范化
- amazon-web-services - 如何使用 AWS CLI 根据给定的日期范围(如 8 月 8 日至 8 月 15 日)从 S3 存储桶下载选择性日期范围文件?
- tensorflow - 如果输出是单热向量,如何自定义深度学习模型?
- qt - QComboBox 样式表在 Ubuntu 16.04 LTS 上不起作用
- lua - 如何在 C lua 模块中调用
- r - init_nloptr.c:35:19:致命错误:nlopt.h:没有这样的文件或目录
- git - 如何对git状态输出进行排序
- python - 熊猫读取没有标头的 JSON 文件