отправьте Content-Type: application / json post с помощью node.js - PullRequest
104 голосов
/ 30 декабря 2011

Как мы можем сделать такой HTTP-запрос в NodeJS?Пример или модуль оценили.

curl https://www.googleapis.com/urlshortener/v1/url \
  -H 'Content-Type: application/json' \
  -d '{"longUrl": "http://www.google.com/"}'

Ответы [ 4 ]

260 голосов
/ 30 декабря 2011

Запрос Mikeal модуль может сделать это легко:

var request = require('request');

var options = {
  uri: 'https://www.googleapis.com/urlshortener/v1/url',
  method: 'POST',
  json: {
    "longUrl": "http://www.google.com/"
  }
};

request(options, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body.id) // Print the shortened url.
  }
});
10 голосов
/ 15 июня 2017

Простой пример

var request = require('request');

//Custom Header pass
var headersOpt = {  
    "content-type": "application/json",
};
request(
        {
        method:'post',
        url:'https://www.googleapis.com/urlshortener/v1/url', 
        form: {name:'hello',age:25}, 
        headers: headersOpt,
        json: true,
    }, function (error, response, body) {  
        //Print the Response
        console.log(body);  
}); 
8 голосов
/ 09 марта 2018

Как гласит официальная документация :

body - тело объекта для запросов PATCH, POST и PUT. Должно быть Buffer, String или ReadStream. Если json имеет значение true, тело должно быть сериализуемым объектом JSON.

При отправке JSON нужно просто указать его в теле опции.

var options = {
    uri: 'https://myurl.com',
    method: 'POST',
    json: true,
    body: {'my_date' : 'json'}
}
request(options, myCallback)
1 голос
/ 04 июля 2018

Почему-то сегодня у меня сработало только это.Все остальные варианты заканчивались ошибкой bad json от API.

Кроме того, еще один вариант для создания требуемого запроса POST с полезной нагрузкой JSON.

request.post({
    uri: 'https://www.googleapis.com/urlshortener/v1/url',
    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify({"longUrl": "http://www.google.com/"})
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...