Не удается отправить запрос POST JsonObjectRequest с использованием залпа - PullRequest
0 голосов
/ 21 мая 2018

Я просто хочу отправить POST запрос, используя залп, но на стороне сервера я ничего не получаю:

Вот мой код:

ANDROID

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 не может прочитать тело входящего запроса.

1 Ответ

0 голосов
/ 21 мая 2018

Вы передаете значение NULL для третьего параметра JsonObjectRequest.

"Значение NULL разрешено и указывает, что никакие параметры не будут опубликованы вместе с запросом."https://android.googlesource.com/platform/frameworks/volley/+/43950676303ff68b23a8b469d6a534ccd1e08cfc/src/com/android/volley/toolbox/JsonObjectRequest.java#40

Вместо этого передайте JSONObject, если вы хотите использовать JsonObjectRequest.

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);
...