我使用volley向GET方法发送请求链接到服务器以获取json
对大多数设备的大部分Android版本都没有任何问题...
但是使用几个平板电脑会出现意外错误并导致此错误
E / Volley(7696):[855] BasicNetwork.performRequest:somesite / webservices / get_latest_records.php的意外响应代码400?thistime = 19700101120000& city = newyork& model = XO Learning tablet& imei = 3522222247251 10-01 16:19:59.047:W / System.err(7696):com.android.volley.ServerError 10-01 16:19:59.047:W / System.err(7696):at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:146) 10-01 16:19:59.047:W / System.err(7696):at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:110)
我不知道为什么会出现这个Volley错误?如果它有问题为什么它适用于大多数设备?如果它是一个很好的resust为什么它不能在几个平板电脑上工作????
requestDataFromServer("http://somesite/webservices/get_latest_records.php?thistime=19700101120000&city="+ URLEncoder.encode(spinner.getSelectedItem().toString(),"UTF-8") + "&model="+ URLEncoder.encode(Global.MODEL,"UTF-8") + "&imei=" + URLEncoder.encode(Global.IMEI,"UTF-8"));
private void requestDataFromServer(final String url) {
try {
req = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject JsonObj_Response) {
try {
if (JsonObj_Response.getInt("success") == 0) {
} else if (JsonObj_Response.getInt("success") == 1) {
new InsertJSONToDB().execute(JsonObj_Response);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError ex) {
ex.printStackTrace();
makeToast("error");
}
}
我该怎么做才能解决这个问题?
提前感谢...
答案 0 :(得分:4)
我遇到了同样的问题。这是我之前发送的请求导致400错误。 http://myipHere:84/api/Test/NewRequest?apikey=SC:some_demo:d789b0c6a44fd4a9&assetid=AHU001&gender=female&issueid= 湿地。 查看湿地板中的空间。 虽然浏览器将其重组为 Wet%20Floor 但是Volley没有。 所以我不得不添加“%20”来提供空间并且它有效。希望这对某人有帮助......