我使用Volley从我的Android应用程序发送带有参数的http发布请求到http://192.168.1.4:3000/battery_signal_report中运行的本地服务器 我非常确定服务器是否正常运行(我使用Postman成功检查了它)。
另外,我使用ip 10.0.2.2成功通过Android Studio的模拟器发送了请求
尝试使其工作,我使用了各种请求实现,包括JsonObjectRequest,StringRequest和此处描述的自定义请求:Volley JsonObjectRequest Post request not working
此外,我已经在某处读过Volley帖子请求在请求标题方面存在一些问题,所以我试图以不同的方式覆盖它。
没有任何作用。每次使用空的VolleyError输入调用onErrorResponse。
我对Android开发很新,所以任何见解都会非常感激。
提前致谢。
答案 0 :(得分:0)
对于遇到此问题的其他任何人,您都需要忘记标题重写,并设置自己的getBodyContentType()和getBody()方法。遵循这种模式:
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, successListener, errorListener) {
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";//set here instead
}
@Override
public byte[] getBody() {
try {
Map<String, String> params = yourObject.getMappedParams();
JSONObject json = new JSONObject(params);
String requestBody = json.toString();
return requestBody == null ? null : requestBody.getBytes("utf-8");
} catch (UnsupportedEncodingException uee) {
return null;
}
}
};