我正在尝试使用oauth1在我的项目中使用volley。但我不知道如何在标题中实现/使用像“消费者秘密”,“令牌秘密”签名和“Nounce”这样的文件,如下图所示。
json请求的当前代码
RequestQueue queue = VolleyUtils.getRequestQueue();
try {
JSONObject jsonObject = ESRequest.jsonObject;
ESJsonRequest myReq = new ESJsonRequest(
ESRequest.method,
ESRequest.mReqUrl,
jsonObject,
createReqSuccessListener(ESRequest),
createReqErrorListener(ESRequest)) {
protected Map<String, String> getParams() throws AuthFailureError {
Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();
// try {
// Mac mac = Mac.getInstance("HmacSHA1");
//
// }catch (NoSuchAlgorithmException ex){
// ex.printStackTrace();
// }
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json");
params.put("oauth_consumer_key","4e77abaec9b6fcda9b11e89a9744c2e1");
params.put("oauth_token","2da943934104293b167fe2feaffca9a1");
params.put("oauth_signature_method","HMAC-SHA1");
params.put("oauth_timestamp",ts);
params.put("oauth_version","1.0");
// params.put("Consumer Secret","94efe40eb55a8d6f1d9d88696de0d37f");
// params.put("Token Secret","b89be3cfb341f87bfd7fdf7c06f3c4e0");
return params;
}
};
myReq.setRetryPolicy(new DefaultRetryPolicy(
DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 4,
BABTAIN_MAX_RETRIES,
BABTAIN_BACKOFF_MULT));
myReq.setHeader("Cache-Control", "no-cache");
//myReq.setHeader("Content-Type", "application/json");
queue.add(myReq);
} catch (Exception e) {
e.printStackTrace();
}
问题
我谷歌很多并构建此代码。但它没有完成。不知道如何将“Nonce”,“Consumer Secret”,“Token Secret”这两个字段添加到此代码中。
这是正确的方法吗?如果不是如何使用上述细节实现oauth1标头..
?如何使用volley
中的这些详细信息获取下面生成的PostMan标题的OAuth oauth_consumer_key = “4e77abaec9b6fcda9b11e89a9744c2e1”,组oauth_token = “2da943934104293b167f6klfeaffca9a1”,oauth_signature_method = “HMAC-SHA1”,oauth_timestamp = “1480672395”,oauth_nonce = “5KEfWK”,oauth_version = “1.0”,oauth_signature =“nnbiava6yCkbSo1RDmtN%FmIoN4c%3D “
请帮忙..谢谢
修改
使用标题的PostMan响应