【问题标题】:How can i make an HTTP POST request and and use the Json Response i should get in android我如何发出 HTTP POST 请求并使用我应该在 android 中获得的 Json 响应
【发布时间】:2018-11-04 13:12:35
【问题描述】:

我尝试向 Web 服务发出 http 登录请求。我按如下方式设置 JSONobject 请求,但是当我尝试调试代码时,响应 JSON 对象似乎为空。 (我应该得到一个 JSON 对象作为响应)。有什么想法吗?

 public UserData initLogin(Creds cr) {

    StringBuilder finalURL = new StringBuilder("https://");
    finalURL.append(credentials.getUrl());
    finalURL.append("/s1services");

    Response.Listener<JSONObject> r1 = new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            res = response.toString();
            us = gson.fromJson(String.valueOf(response), UserData.class);

        }
    };
    JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST, finalURL.toString(), cr.serObj(), r1, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });






    return us;
}

我应该把这个请求放到请求队列还是什么的?我应该提一下,凭证类有一个 URL 属性和一个 getUrl() 方法。

【问题讨论】:

    标签: java android httprequest android-volley


    【解决方案1】:

    我会按照 Android 文档中的示例进行操作:

    StringBuilder finalURL = new StringBuilder("https://");
    finalURL.append(credentials.getUrl());
    finalURL.append("/s1services");
    String url = finalURL.toString();
    
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
        (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
    
        @Override
        public void onResponse(JSONObject response) {
            //handle your json response here
            us = gson.fromJson(String.valueOf(response), UserData.class);
        }
      }, new Response.ErrorListener() {
    
      @Override
      public void onErrorResponse(VolleyError error) {
          // TODO: Handle error
    
      }
    });
    
    // Access the RequestQueue through your singleton class.
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
    

    见:https://developer.android.com/training/volley/request

    【讨论】:

    • 是的,但是我如何初始化一个单例类以及在 get 实例方法中作为“this”传递什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2017-05-16
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多