Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在截取中使用JsonObjectRequest来设置参数?_Android_Android Volley - Fatal编程技术网

Android 如何在截取中使用JsonObjectRequest来设置参数?

Android 如何在截取中使用JsonObjectRequest来设置参数?,android,android-volley,Android,Android Volley,我注意到方法POST在JsonObjectRequest中不起作用。我必须要传递的参数是 session_code: 12345 user_id: 55 我怎样才能在这里输入两个参数 我想把它转换成jsonObjectRequest,但我不知道怎么做 @Override protected Map < String, String > getParams() throws AuthFailureError {

我注意到方法POST在JsonObjectRequest中不起作用。我必须要传递的参数是

session_code: 12345
user_id: 55
我怎样才能在这里输入两个参数

我想把它转换成jsonObjectRequest,但我不知道怎么做

        @Override
            protected Map < String, String > getParams() throws AuthFailureError {


                // get user data from session
                HashMap<String, String> user = session.getUserDetails();

                // user session
                String user_session = user.get(session.KEY_SESSION);


                Map < String, String > params = new HashMap < > ();
                params.put("session_code", user_session);
                params.put("mode", "employee");
                return params;
            }
public void loadNews(){
最终常数WebConfig=新常数();
RequestQueue=Volley.newRequestQueue(getContext());
//从会话获取用户数据
HashMap user=session.getUserDetails();
//用户会话
字符串user\u session=user.get(session.KEY\u session);
Mapparams=newhashmap<>();
参数put(“会话代码”,用户会话);
参数put(“模式”、“员工”);
JSONObject参数=新的JSONObject(参数);
//打电话给我们的截击库
JsonObjectRequest stringRequest=新的JsonObjectRequest(Request.Method.POST、WebConfig.news、参数、new Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应)
{
试一试{
JSONArray details=response.getJSONArray(“数据”);
Log.d(“newsrepose”,String.valueOf(response));
newsList.clear();
对于(int i=0;i getHeaders()抛出AuthFailureError{
Mapparams=newhashmap();
参数put(“内容类型”、“应用程序/x-www-form-urlencoded”);
参数put(“X-API-KEY”,网络配置测试);
参数put(“授权”,WebConfig.test1);
返回参数;
}
@凌驾
受保护的响应parseNetworkResponse(NetworkResponse响应){
试一试{
Cache.Entry cacheEntry=HttpHeaderParser.parseCacheHeaders(响应);
if(cacheEntry==null){
cacheEntry=new Cache.Entry();
}
final long cachehitbutrefresh=3*60*1000;//3分钟后将命中缓存,但也会在后台刷新
final long cacheExpired=24*60*60*1000;//24小时后此缓存项完全过期
long now=System.currentTimeMillis();
最终长时间softExpire=now+cacheHitButRefreshed;
最终长ttl=现在+缓存过期;
cacheEntry.data=response.data;
cacheEntry.softTtl=softExpire;
cacheEntry.ttl=ttl;
字符串头值;
headerValue=response.headers.get(“日期”);
if(headerValue!=null){
cacheEntry.serverDate=HttpHeaderParser.parseDateAsEpoch(headerValue);
}
headerValue=response.headers.get(“上次修改”);
if(headerValue!=null){
cacheEntry.lastModified=HttpHeaderParser.parseDateAsEpoch(headerValue);
}
cacheEntry.responseHeaders=response.headers;
最终字符串jsonString=新字符串(response.data,
HttpHeaderParser.parseCharset(response.headers));
返回Response.success(新的JSONObject(jsonString)、cacheEntry);
}捕获(不支持的编码异常e){
返回Response.error(新的ParseError(e));
}捕获(JSONException e){
返回Response.error(新的ParseError(e));
}
}
@凌驾
受保护的void deliverResponse(JSONObject响应){
super.deliverResponse(响应);
}
@凌驾
公共无效交付错误(截击错误){
super.deliverError(错误);
}
@凌驾
受保护的截击错误解析NetworkError(截击错误截击错误){
返回super.parseNetworkError(截击错误);
}
};
newRequestQueue(getContext()).add(stringRequest);
}
我认为问题在于使用jsonObjectRequest,我仍然不知道如何解决这个问题

有没有办法通过使用JsonObjectRequest来做到这一点。

试试这个

 // get user data from session
 HashMap<String, String> user = session.getUserDetails();

 // user session
 String user_session = user.get(session.KEY_SESSION);


 Map < String, String > params = new HashMap < > ();
 params.put("session_code", user_session);
 params.put("mode", "employee");

JSONObject parameters = new JSONObject(params);

JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, WebConfig.news, parameters, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        //TODO: handle success
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
        //TODO: handle failure
    }
});

Volley.newRequestQueue(this).add(jsonRequest);
//从会话获取用户数据
HashMap user=session.getUserDetails();
//用户会话
字符串user\u session=user.get(session.KEY\u session);
Mapparams=newhashmap<>();
参数put(“会话代码”,用户会话);
参数put(“模式”、“员工”);
JSONObject参数=新的JSONObject(参数);
JsonObjectRequest jsonRequest=新的JsonObjectRequest(Request.Method.POST,WebConfig.news,parameters,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
//TODO:处理成功
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
错误。printStackTrace();
//TODO:处理失败
}
});
newRequestQueue(this.add)(jsonRequest);

我仍然收到错误的请求400:(
here is my full code
MainActivity
  public void loadNews(){


        final Constant WebConfig = new Constant();
        RequestQueue queue = Volley.newRequestQueue(getContext());



        // get user data from session
        HashMap<String, String> user = session.getUserDetails();

        // user session
        String user_session = user.get(session.KEY_SESSION);


        Map < String, String > params = new HashMap < > ();
        params.put("session_code", user_session);
        params.put("mode", "employee");

        JSONObject parameters = new JSONObject(params);

        //Call our volley library
        JsonObjectRequest stringRequest = new JsonObjectRequest(Request.Method.POST, WebConfig.news, parameters, new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response)
                    {

                        try {

                            JSONArray details = response.getJSONArray("data");


                                Log.d("newsrepose",String.valueOf(response));

                                newsList.clear();

                                for (int i=0; i<details.length(); i++) {

                                    JSONObject object = details.getJSONObject(i);

                                    newsList.add(new NewsModel(
                                            object.getInt("a"),
                                            object.getString("b"),
                                            object.getString("c"),
                                            object.getString("d"),
                                            object.getString("e"),
                                            object.getString("f"),
                                            object.getString("g"),
                                            object.getString("h")
                                    ));

                                }

                                //creating adapter object and setting it to recyclerview
                                adapter = new NewsAdapter(getActivity(), newsList);
                                newsRecyclerView.setAdapter(adapter);

                                adapter.notifyDataSetChanged();
                                swipeRefreshLayout.setRefreshing(false);


                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.printStackTrace();
                        //TODO: handle failure
                    }
                }) {


            //This is for Headers If You Needed
            @Override
            public Map< String, String > getHeaders() throws AuthFailureError {
                Map < String, String > params = new HashMap< String, String >();
                params.put("Content-Type", "application/x-www-form-urlencoded");
                params.put("X-API-KEY",WebConfig.test);
                params.put("Authorization",WebConfig.test1);
                return params;
            }

            @Override
            protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {

                try {
                    Cache.Entry cacheEntry = HttpHeaderParser.parseCacheHeaders(response);
                    if (cacheEntry == null) {
                        cacheEntry = new Cache.Entry();
                    }
                    final long cacheHitButRefreshed = 3 * 60 * 1000; // in 3 minutes cache will be hit, but also refreshed on background
                    final long cacheExpired = 24 * 60 * 60 * 1000; // in 24 hours this cache entry expires completely
                    long now = System.currentTimeMillis();
                    final long softExpire = now + cacheHitButRefreshed;
                    final long ttl = now + cacheExpired;
                    cacheEntry.data = response.data;
                    cacheEntry.softTtl = softExpire;
                    cacheEntry.ttl = ttl;
                    String headerValue;
                    headerValue = response.headers.get("Date");
                    if (headerValue != null) {
                        cacheEntry.serverDate = HttpHeaderParser.parseDateAsEpoch(headerValue);
                    }
                    headerValue = response.headers.get("Last-Modified");
                    if (headerValue != null) {
                        cacheEntry.lastModified = HttpHeaderParser.parseDateAsEpoch(headerValue);
                    }
                    cacheEntry.responseHeaders = response.headers;
                    final String jsonString = new String(response.data,
                            HttpHeaderParser.parseCharset(response.headers));
                    return Response.success(new JSONObject(jsonString), cacheEntry);
                } catch (UnsupportedEncodingException e) {
                    return Response.error(new ParseError(e));
                } catch (JSONException e) {
                    return Response.error(new ParseError(e));
                }
            }

            @Override
            protected void deliverResponse(JSONObject response) {
                super.deliverResponse(response);
            }

            @Override
            public void deliverError(VolleyError error) {
                super.deliverError(error);
            }

            @Override
            protected VolleyError parseNetworkError(VolleyError volleyError) {
                return super.parseNetworkError(volleyError);
            }
        };

        Volley.newRequestQueue(getContext()).add(stringRequest);
    }
 // get user data from session
 HashMap<String, String> user = session.getUserDetails();

 // user session
 String user_session = user.get(session.KEY_SESSION);


 Map < String, String > params = new HashMap < > ();
 params.put("session_code", user_session);
 params.put("mode", "employee");

JSONObject parameters = new JSONObject(params);

JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, WebConfig.news, parameters, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        //TODO: handle success
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
        //TODO: handle failure
    }
});

Volley.newRequestQueue(this).add(jsonRequest);