我只想使用凌空发送POST
请求,但在服务器端我什么都没得到:
这是我的代码:
机器人
JsonObjectRequest sr = new JsonObjectRequest(Request.Method.POST, URL,null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response){
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws
AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("email",email.getText().toString());
return params;
}
};
queue.getInstance(getApplicationContext()).add(sr);
节点
const express = require('express');
const app = express() ;
const bodyParser = require('body-parser') ;
app.use(bodyParser.urlencoded({extended : false}));
app.use(bodyParser.json()) ;
app.post('/register',(req,res)=>{
//email and passwords
console.log(req.body);
})
app.listen(80);
这就是结果:{}
但是,当我使用StringRequest
时,所有内容都会正常运行,但当我使用JsonObjectRequest
时,似乎node.js
无法读取传入请求的正文。
答案 0 :(得分:0)
您为JsonObjectRequest的第三个参数传入null。
&#34;允许Null,表示不会随请求一起发布参数。&#34; https://android.googlesource.com/platform/frameworks/volley/+/43950676303ff68b23a8b469d6a534ccd1e08cfc/src/com/android/volley/toolbox/JsonObjectRequest.java#40
如果要使用JsonObjectRequest,则在那里传递JSONObject。
Map<String,String> params = new HashMap<>();
params.put("email", "email@email.com");
JSONObject json = new JSONObject(params);
JsonObjectRequest sr = new JsonObjectRequest(Request.Method.POST, URL, json, ...)
queue.getInstance(getApplicationContext()).add(sr);