Параметры заголовка POST ExpressJS? - PullRequest
1 голос
/ 27 августа 2011

Я не публикую сообщения в теле, и пары ключ / значение не отображаются нигде, когда я смотрел, когда делал сообщение curl из PHP - где они?!

Обновление:

Использование http_build_query ($ parameters) в записи curl сработало, поскольку они стали доступны в req.body, но кажется странным, что sinatra, play и другие инфраструктуры веб-API все обрабатывают опубликованный массив одинаково (без метода http_build_query), а express выглядит как сводный пасынок.Кто в праве?

В app.js есть конфиг:

app.use(express.bodyParser());
app.use(express.methodOverride());

Звонок:

app.post('/call/:genericUrlParam', function(req, res){

    // where is 'key'/'value' pair?!
    console.log('headers: ' + JSON.stringify(req.headers));
    console.log('body: ' + JSON.stringify(req.body));

});

PHP выглядит так:

        $parameters = array (
            'key' => 'value'
        );


        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, "localhost/call/myparam");
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 50);
        curl_setopt($curl_handle, CURLOPT_USERPWD, "username:password");
        curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);


        curl_setopt($curl_handle, CURLOPT_POST, 1);
        curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $parameters);

        $buffer = curl_exec($curl_handle);
        $error = curl_error($curl_handle);
        curl_close($curl_handle);

        if (empty($buffer)) {
            return "Error: ".$error;
        } else {
            return $buffer;
        }

1 Ответ

1 голос
/ 01 сентября 2011

bodyParser заполняет Request.body из параметров запроса POST, только если заголовок Content-type запроса имеет значение application/x-www-form-urlencoded.Если запрос не имеет параметров или другого типа контента, объект Request.body будет неопределенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...