【问题标题】:problems with volley library and json requestvolley 库和 json 请求的问题
【发布时间】:2015-05-21 10:32:30
【问题描述】:

自从我开始处理这个问题以来已经过去了两天。我阅读了所有关于凌空和 json 的帖子,但没有人帮助我。这是一个奇怪的问题。让我解释一下。

我必须将 JSON 对象发送到服务器。在对象内部,有一个身份验证令牌。它是一个带有时间和私有令牌的 md5 令牌。我从这个 url 获得公共令牌:http://casting.haikoservices.com/service/create_token。真的很简单,不是吗?我就是用这个方法来获取的。

 public void getTemporalToken() {

        temporal_token="";
        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
                url_temporal_token,null, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
              

                try {

                    temporal_token = response.getString("token");
                    sendData();


                } catch (Exception e) {
                    e.printStackTrace();
                    Toast.makeText(getApplicationContext(),
                            "Error: " + e.getMessage(),
                            Toast.LENGTH_LONG).show();
                }
               
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
             
                Toast.makeText(getApplicationContext(),
                        "OnError"+error.getMessage(), Toast.LENGTH_SHORT).show();
               
            }
        });

        // Adding request to request queue
        AppController.getInstance().addToRequestQueue(jsonObjReq);

    }

好吧。我在 chrome 中使用邮递员来验证我收到的临时令牌是否有效。 (我添加了私钥,使用 md5 加密并尝试使用邮递员)。现在奇怪的事情开始了。使用此临时密钥创建的令牌无效,但如果我使用网页中的令牌,它可以工作。

这有什么意义吗?如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 同样粘贴sendData()代码,temporal_token 是怎么用的?
  • 嗨,阿西夫。我不认为 sendData() 代码在这里很重要。我从 temporal_token 的问题开始。我得到了一个令牌,但它不起作用......

标签: android json get android-volley


【解决方案1】:

使用此方法。我测试了这段代码,它可以正常工作。

输出

05-21 16:56:47.477: E/data(22710): 647b9ee6151f2bc72a2e737c2ac7da61**

public void getTemporalToken() {

    RequestQueue queue= Volley.newRequestQueue(getApplicationContext());

    String url_temporal_token= "http://casting.haikoservices.com/service/create_token";
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,url_temporal_token,null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {

            try {

                String temporal_token = response.getString("token");

                Log.e("data", temporal_token);

            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(),
                        "Error: " + e.getMessage(),
                        Toast.LENGTH_LONG).show();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {

            Toast.makeText(getApplicationContext(), "OnError"+error.getMessage(), Toast.LENGTH_SHORT).show();

        }
    });

    queue.add(jsonObjReq);
    // Adding request to request queue
}

【讨论】:

  • 嗨,汤姆。是的,用你的方法我得到了令牌。但是,如果我在 chrome 中将这个令牌(在调试模式下复制和粘贴)与邮递员一起使用,它就不起作用。我很困惑...还是谢谢!
猜你喜欢
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
相关资源
最近更新 更多