Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 volley库将json数据发布到服务器无法正常工作_Android_Json - Fatal编程技术网

通过android volley库将json数据发布到服务器无法正常工作

通过android volley库将json数据发布到服务器无法正常工作,android,json,Android,Json,我已经编写了一个代码,将我在edittext中键入的文本通过volley发送到服务器,但它不能正常工作,在研究了更快的网络调用后,我第一次尝试使用volley库 我在发布数据时出错 我尝试过的代码: CustomJsonRequest.class public class CustomJsonRequest extends Request<JSONArray>{ private Response.Listener<JSONArray> listener; private

我已经编写了一个代码,将我在edittext中键入的文本通过volley发送到服务器,但它不能正常工作,在研究了更快的网络调用后,我第一次尝试使用volley库

我在发布数据时出错

我尝试过的代码:

CustomJsonRequest.class

public class CustomJsonRequest extends Request<JSONArray>{

private Response.Listener<JSONArray> listener;
private Map<String, String> params;

public CustomJsonRequest(int method, String url, Map<String, String> params,
    Response.Listener<JSONArray> reponseListener, Response.ErrorListener 
    errorListener) {
    super(method, url, errorListener);
    this.listener = reponseListener;
    this.params = params;
}

protected Map<String, String> getParams()
        throws com.android.volley.AuthFailureError {
    return params;
};

@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response)  
{
    try {
        String jsonString = new String(response.data,
                HttpHeaderParser.parseCharset(response.headers));
        return Response.success(new JSONArray(jsonString),
                HttpHeaderParser.parseCacheHeaders(response));
    } catch (UnsupportedEncodingException e) {
        return Response.error(new ParseError(e));
    } catch (JSONException je) {
        return Response.error(new ParseError(je));
    }
}

@Override
protected void deliverResponse(JSONArray response) {
    listener.onResponse(response);
}
谁能告诉我哪里出了问题,我需要做什么改变?
谢谢

您遇到了什么错误?这些调试消息打印到哪里?@user BasicNetwork.performRequest:D/Volley的意外响应代码400﹕ [1] 3.OneErrorResponse:Error:null当我调试代码时,在这一行之后,jsObjRequest=new CustomJsonRequest(Request.Method.POST,postAnswerUrl,answersMap,new Response.Listener(){它直接进入AppController.getInstance().addToRequestQueue(jsObjRequest);@longwalker我不明白你的问题,你是在问我将这些值发送到哪里?你需要指定错误的确切位置。以及错误类型。请在这里发布错误输出,以及它所指的行。你得到了什么错误?你将这些调试消息打印到哪里?@user BasicNetwork.performRequest:意外响应右旋/截击的nse代码400﹕ [1] 3.OneErrorResponse:Error:null当我调试代码时,在这一行之后,jsObjRequest=new CustomJsonRequest(Request.Method.POST,postAnswerUrl,answersMap,new Response.Listener(){它直接进入AppController.getInstance().addToRequestQueue(jsObjRequest);@longwalker我不明白你的问题,你是在问我把这些值发送到哪里?你需要指定错误的确切位置。以及错误的类型。请在这里发布错误输出,以及它所指的行。
 private void postAnswers(){
    String answers = editAnswers.getText().toString();
    Map<String,String> answersMap = new HashMap<String,String>();
    answersMap.put("answers",answers);
    jsObjRequest = new CustomJsonRequest(Request.Method.POST, postAnswerUrl, 
    answersMap,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    for (int i = 0; i < response.length(); i++) {
                        try {
                            JSONObject obj = response.getJSONObject(i);
                            obj.put("TransactionId", transId);
                            obj.put("UserType", userType);
                            obj.put("QId", questionId);
                            obj.put("Answer", answers);
                            obj.put("Date", date1);
                            obj.put("Time", time1);
                            obj.put("DeviceId", deviceId);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("Error: " + error.getMessage());
            Log.d("Error", "Error: " + error.getMessage());
        }
    }){
        @Override
        protected Response<JSONArray> parseNetworkResponse(NetworkResponse 
        response) {
            try {
                String jsonString = new String(response.data,
                        HttpHeaderParser.parseCharset(response.headers));
                return Response.success(new JSONArray(jsonString),
                        HttpHeaderParser.parseCacheHeaders(response));
            } catch (UnsupportedEncodingException e) {
                return Response.error(new ParseError(e));
            } catch (JSONException je) {
                return Response.error(new ParseError(je));
            }
        }
    };

    AppController.getInstance().addToRequestQueue(jsObjRequest);

}
timeval = {String@4116} "3:43 PM"
date1 = {String@4114} "Mon, Dec 7, 2015"
time1 = {String@4116} "3:43 PM"
datetime = {String@4117} "Mon, Dec 7, 2015T3:43 PM"
transId = {String@4118} "DeviceId, Dec 7, 2015T3:43 PM"
answersMap = {HashMap@4119}  size = 1
jsObjRequest = {Write_Answers$4@4174} "[ ] http://gps.traxistar.net/PostAnswers.svc/PostAnswers 0xa3925991 NORMAL null"