【发布时间】:2018-05-23 17:58:27
【问题描述】:
网址示例 = http://webapi.example.com/api/order?data={...list[{...},{...}]}
GsonRequest request = new GsonRequest<OrderResponse>("URL example", null,
OrderResponse.class, null, new Response.Listener<OrderResponse>() {
@Override
public void onResponse(OrderResponse response) {
if (response.isSuccess()) {
//sendNotification();
} else {
Toast.makeText(DeliveryManagementActivity.this, "Error in Server", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.e("Error: " + error.getMessage());
}
});
对于上面的代码,我收到 400 错误。
GsonRequest request = new GsonRequest<OrderResponse>(UrlConstants.SEND_ORDERS_URL, getParams(),
OrderResponse.class, header, new Response.Listener<OrderResponse>() {
@Override
public void onResponse(OrderResponse response) {
if (response.isSuccess()) {
sendNotification();
} else {
Toast.makeText(DeliveryManagementActivity.this, "Error in Server", Toast.LENGTH_SHORT).show();
}
hideLoader();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
VolleyLog.e("Error: " + error.getMessage());
Toast.makeText(DeliveryManagementActivity.this, "Error " + error.getMessage(), Toast.LENGTH_SHORT).show();
hideLoader();
}
});
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return headers;
}
private Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("orderData", requestData.getOrderRequest(requestData));
return params;
}
对于上述情况,我总是从服务器收到错误的错误响应。我从第一个请求方法复制了请求,并使用浏览器 url 来访问 API。效果很好。
已编辑:
更改为第二种方式后,请求如下所示。
url = www.url.com/addOrder.php?
参数 = {"orderData":"{\"deliveryTime\":\"2017-12-10 01:13:00\",\"orderDetail\":[{\" courseId\":\"1\",\"foodQuantity\":\"2\",\"offer_id\":\"-1\",\"type\":\"1\"}],\ "userID\":\"7\",\"userLocation\":\"17\"}"}
orderData 也在 json 中解析,但缺少 =。是不是这个问题。问题顶部的 url 是实际的,并且可以正常工作。
【问题讨论】:
标签: php android json web-services android-volley