запрос POST с сервера Node.js для PHP

181
31 января 2018, 15:14

Товарищи, скажите что делаю не так?

Делаю запрос post node.js, но ответ не приходит Пробовал библиотеки axios, request, request-promise, http(нативный) ... Аналогичный запрос на PHP выдает прекрасный результат.

В чем подвох?

пример который не работает javascript:

var key = querystring.stringify({ 'api_key': 'your_key'});
axios({
  method:'POST',
  url: 'https://miratext.ru/api2/call/user/balance',
  responseType : 'json' ,
  headers: {
    'Content-type': 'application/x-www-form-urlencoded',
    'User-Agent': 'Request-Promise',
    'Content-Length': key.length ,
  },
  content: key,
})
.then(function(response) {
   console.log('RESPONSE', response.data);
   console.log('RESPONSE', response.status);
   console.log('RESPONSE', response.statusText);
   console.log('RESPONSE', response.headers);
   console.log('RESPONSE', response.config);
}).catch(function (error) {
   if (error.response) {
     console.log('ERROR1 ', error.response.data);
     console.log('ERROR2 ', error.response.status);
     console.log('ERROR3 ', error.response.headers);
   } else if (error.request) {
     console.log('ERROR4 ', error.request);
   } else {
     console.log('ERROR5 ', error.message);
   }
     console.log('ERROR6 ', error.config);
});

пример рабочий php:

$ch = curl_init('https://miratext.ru/api2/call/user/balance');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('api_key' => 'your_key')));
$result = curl_exec($ch);
print_r(json_decode($result, true));
Answer 1

Видимо где-то допустил опечатку

Решение:

var url = 'https://miratext.ru/api2/call/user/balance';
var options = {
      method: 'POST',
      uri: url,
      headers: {
        'content-type': 'application/x-www-form-urlencoded',
        'User-Agent': 'Request-Promise',
        'Content-Length': key.length,
      },
      'content': key,
      'body': key,
      json: true
    };
    rp(options, function (err, res) {
       console.log('REQUEST RESULTS:', err, res.statusCode);
    })
    .then(function (result) {
       console.log('Ответ ', result);
    })
    .catch(function (err) {
       console.log(err);
  });
READ ALSO
WooCommerce+WP Job Manager в My Account не работает pagination

WooCommerce+WP Job Manager в My Account не работает pagination

Есть 2 известных плагина: WooCommerce, WP Job ManagerПри отображении списка вакансий или резюме в админке пользователя (Используется админка Woo) не работает...

199
Конвертер систем счисления на php?

Конвертер систем счисления на php?

Помогите разобраться в основах1 байт = 8 бит В 1 байте может максимум уместиться максимум 255 значений

159
Как сделать так, чтобы человек мог оставлять заявки на сайте которые были бы видны остальным?

Как сделать так, чтобы человек мог оставлять заявки на сайте которые были бы видны остальным?

Есть сайт на wordpressПодскажите, как можно сделать так, чтобы человек, который заходит на сайт мог оставлять заявки (через форму), которые бы не отсылались...

141
Opencart 3.0 живой поиск

Opencart 3.0 живой поиск

Добрый день! Использую готовый модуль живого поиска, работает с латиницей и цифрами, не работает с кириллицейПеречитал форум, была похожая...

230