Android:如何在Volley Request中添加Oauth1标头

时间:2016-12-21 05:06:43

标签: android android-studio oauth android-volley android-networking

我正在尝试使用oauth1在我的项目中使用volley。但我不知道如何在标题中实现/使用像“消费者秘密”,“令牌秘密”签名和“Nounce”这样的文件,如下图所示。

Details needed to include in the header

  

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响应

enter image description here

0 个答案:

没有答案
相关问题