在android中使用Volley库时数据未发布到服务器

在android中使用Volley库时数据未发布到服务器,android,post,android-volley,Android,Post,Android Volley,我正在尝试使用android中的Volley库向服务器发布一些JsonObject。我怀疑getparams方法没有被调用,我的数据没有被发布。谁能一步一步地告诉我哪里出了问题。我的代码如下: case R.id.bt_search: try { jObj.put("FromDate", "04-10-2014"); jObj.put("Todate", "04-11-2014");

我正在尝试使用android中的
Volley
向服务器发布一些
JsonObject
。我怀疑
getparams
方法没有被调用,我的数据没有被发布。谁能一步一步地告诉我哪里出了问题。我的代码如下:

          case R.id.bt_search:



         try {
            jObj.put("FromDate", "04-10-2014");
            jObj.put("Todate", "04-11-2014");
            jObj.put("BillNumber", bill);
            jObj.put("Status", "NotClosed");
            jObj.put("OrderType", "1,2,3" /* Ordertype */);
            Log.i("json data on clicking search", "" + jObj);
            makeJsonObjReq(jObj);


        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        break;


  private void makeJsonObjReq(final JSONObject jObj) {
    // TODO Auto-generated method stub
    RequestQueue rq = Volley.newRequestQueue(this);
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(
            Method.POST,
            "myurl",
            null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject arg0) {
                    // TODO Auto-generated method stub
                    Log.d("server Response", arg0.toString());

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

                        }
                    } catch (Exception e) {

                    }
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError arg0) {
                    // TODO Auto-generated method stub
                    VolleyLog.d("Error msg from server",
                            "Error: " + arg0.getMessage());

                }

            }) {

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            // TODO Auto-generated method stub
            Map<String, String> params = new HashMap<String, String>();
            params.put("data", jObj.toString());

            //return params;
             return super.getParams();

        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            // TODO Auto-generated method stub
            return super.getHeaders();
        }

    };

    com.cashier.volley_helper.AppController.getInstance()
            .addToRequestQueue(jsonObjReq);
    rq.add(jsonObjReq);
};
案例R.id.bt\u搜索:
试一试{
jObj.put(“自日期”、“2014年10月4日”);
jObj.put(“Todate”,“04-11-2014”);
jObj.put(“票据编号”,票据);
jObj.put(“状态”、“未关闭”);
jObj.put(“订单类型”,“1,2,3”/*订单类型*/);
Log.i(“单击搜索时的json数据”,“”+jObj);
makeJsonObjReq(jObj);
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
打破
私有void makeJsonObjReq(最终JSonObjectJobj){
//TODO自动生成的方法存根
RequestQueue rq=Volley.newRequestQueue(this);
JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(
方法.POST,
“我的URL”,
null,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject arg0){
//TODO自动生成的方法存根
Log.d(“服务器响应”,arg0.toString());
试一试{
对于(int i=0;i
您必须修改getParams()方法

private void makeJsonObjReq(最终JSONObject jObj){
//TODO自动生成的方法存根
RequestQueue rq=Volley.newRequestQueue(this);
JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(
方法.POST,
“我的URL”,
null,新响应。侦听器(){
@凌驾
公共void onResponse(JSONObject arg0){
//TODO自动生成的方法存根
Log.d(“服务器响应”,arg0.toString());
试一试{
对于(int i=0;i
您可以像这样使用自定义请求类

public类CustomRequest扩展请求{
@凌驾
公共条目getCacheEntry(){
//TODO自动生成的方法存根
返回super.getCacheEntry();
}
@凌驾
公共字符串getCacheKey(){
//TODO自动生成的方法存根
返回super.getCacheKey();
}
私人倾听者;
私有映射参数;
公共CustomRequest(字符串url、映射参数、,
侦听器reposeListener,ErrorListener ErrorListener){
super(Method.GET、url、errorListener);
this.listener=reponlistener;
this.params=params;
}
公共CustomRequest(int方法、字符串url、映射参数、,
侦听器reposeListener,ErrorListener ErrorListener){
super(方法、url、errorListener);
this.listener=reponlistener;
this.params=params;
}
@凌驾
受保护的映射getParams()
抛出com.android.volley.AuthFailureError{
系统输出打印项次(参数);
返回参数;
};
@凌驾
受保护的响应parseNetworkResponse(NetworkResponse响应){
试一试{
String jsonString=新字符串(response.data,
HttpHeaderParser.parseCharset(response.headers));
返回Response.success(新的JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(响应));
}捕获(不支持的编码异常e){
返回Response.error(新的ParseError(e));
}捕获(JSONException je){
返回Response.error(newparseerror(je));
}
}
@凌驾
受保护的void deliverResponse(JSONObject响应){
//TODO自动生成的方法存根
onResponse(response);
}

}
尝试此代码会出现以下错误:
[1]4.onErrorResponse:error msg from server
您是否将“myurl”作为myurl?如果我将
private void makeJsonObjReq(final JSONObject jObj) {
    // TODO Auto-generated method stub
    RequestQueue rq = Volley.newRequestQueue(this);
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(
            Method.POST,
            "myurl",
            null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject arg0) {
                    // TODO Auto-generated method stub
                    Log.d("server Response", arg0.toString());

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

                        }
                    } catch (Exception e) {

                    }
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError arg0) {
                    // TODO Auto-generated method stub
                    VolleyLog.d("Error msg from server",
                            "Error: " + arg0.getMessage());

                }

            }) {

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            // TODO Auto-generated method stub
            Map<String, String> params = super.getParams();
             if( params==null)
             params =new HashMap<String, String>();
            params.put("data", jObj.toString());

           return params;
         }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            // TODO Auto-generated method stub
            return super.getHeaders();
        }

    };

    com.cashier.volley_helper.AppController.getInstance()
            .addToRequestQueue(jsonObjReq);
    rq.add(jsonObjReq);
}