Оставьте запрос Api в Node js (сверните в Node.js, Python в Node.js) - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть блок кода curl, который работает успешно.

curl -v -X POST "https://someapihost" \
-d "image_url=someimage.jpg" \
-H "Authorization: form1 key2"

И есть блок кода Python, который работает точно так же.

import requests

headers = {
    'Authorization': 'form1 key2',
}

data = {
  'image_url': 'someimage.jpg'
}

response = requests.post('https://someapihost/', headers=headers, data=data)

Но мне нужен блок кода Node js, который работает одинаково, поэтому мне нужно перевести эти блоки кода.

Вот мой перевод.(Я использовал https://curl.trillworks.com/#node)

var request = require('request');

var headers = {
    'Authorization': 'form1 key2'
};

var dataString = 'image_url=someimage.jpg';

var options = {
    url: 'https://someapihost',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);

Но respose.statusCode возвращает 400, поэтому он не работает. Интересно, почему возникает эта ошибка и как исправить этот код. (Конечно, я устанавливаю запрос с помощью "npm install request ")

Спасибо, что прочитали этот вопрос. Спасибо

1 Ответ

0 голосов
/ 02 декабря 2018

Это зависит от вызова API, который вы делаете, но я ожидал бы, что следующее сработает, если он ожидает, что json будет входным.

var request = require('request');

var headers = {
  'Authorization': 'form1 key2'
};

var data = {
  image_url: 'someimage.jpg'
}

var options = {
  url: 'https://someapihost',
  method: 'POST',
  headers: headers,
  body: data,
  json: true
};

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
}

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