【发布时间】:2017-06-21 18:29:03
【问题描述】:
我搜索了很多,但无法找出发生了什么。我编写了这段代码的许多变体,这是最新的。
Android 代码
private static void post(@NonNull String url,
@NonNull Context context,
@NonNull final JSONObject jsonRequest,
@NonNull final ServerConnectionAdapter serverConnectionAdapter){
Log.d(TAG, "post: URL = " + url);
RequestQueue queue = Volley.newRequestQueue(context);
JsonObjectRequest postRequest = new JsonObjectRequest(
Request.Method.POST,
url,
jsonRequest,
serverConnectionAdapter,
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
serverConnectionAdapter.onErrorResponse(null, error);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<>();
// map.put("user", json.toString());
map.put("user", "{\"id\":-1,\"name\":\"Gustavo Araujo\"}");
return map;
}
};
queue.add(postRequest);
}
服务器 (Java) 代码
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("doPost");
System.out.println("REQUEST: ");
for (Map.Entry<String, String[]> e : request.getParameterMap().entrySet()){
System.out.print(" ");
System.out.println(e.getKey() + ": " + java.util.Arrays.toString(e.getValue()));
}
System.out.println("end");
}
doPost 方法输出
doPost
REQUEST:
end
我已经在屏幕上加注了很长时间,以至于我想我找不到错误在哪里。我确实找到了很多例子,有和没有 getParams()。我都尝试了,但没有改变任何东西。
ServerConnectionAdapter 是我创建的一个抽象类,用于将响应与错误侦听器统一起来。我确信这不是问题,因为它可以完美地与我拥有的 GET 配合使用。
String url 也不能错(否则服务器不会被触发。
jsonRequest 也不是问题,因为我已经在那里使用了null 并且根本没有改变结果。
正如我所说,我已经为这段代码加注了几个小时,我所有的假设都可能完全错误,这就是我寻求帮助的原因。
【问题讨论】:
-
Android Studio 的 Log-cat 中是否显示任何错误或警告?
-
Method calling post 和 output。剩下的输出只是我自己验证其他数据的日志。
标签: java android json post android-volley