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