Узел Javascript Tiny CC

Я пытаюсь использовать REST API tiny.cc из Node, но, похоже, столкнулся с проблемой, поскольку сервер всегда отвечает сообщением «Отсутствуют входные параметры».

var message = JSON.stringify({
  "urls": [
    {
      "long_url": "http://example.com",
    }
  ]
});
var https_options = {
    host: 'tinycc.com',
    path: '/tiny/api/3/urls/',
    port: 443,
    method: 'POST',
    headers: {
        'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        'Content-Length': message.length
    }
}

var req = https.request(https_options,res => {
        var msg = '';
        res.on('data',d => msg += d);
        res.on('end',() => {
            console.info('end',JSON.parse(msg));
        });
    });
    req.on('error',e => console.info('tinyURL error',e));
    req.write(message);
    req.end();

Ответ всегда

{ 
  error: { 
    code: 1305, 
    message: 'Missing input parameters', 
    details: '' 
  },
  version: '3.1' 
}

Вы могли бы быть здесь - покупайте, я включаю все, что требуется крошечной документацией cc (ей нужны только Auth и long_url).

user3094755 06.11.2018 12:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
139
1

Ответы 1

Я не знаю, какую библиотеку вы используете для вызова API, но я думаю, вам будет лучше использовать запрос и включить полезную нагрузку в качестве тела вашего почтового запроса, а не использовать более ручной метод записи в запрос.

var message = {
  "urls": [
    {
      "long_url": "http://example.com",
    }
  ]
};
var options = {
    host: 'tinycc.com',
    path: '/tiny/api/3/urls/',
    port: 443,
    method: 'POST',
    body: message,
    json: true,
    headers: {
        'Authorization': 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        'Content-Length': message.length,
        "Content-Type": "application/json"
    }
}
request(options, console.info)

tiny cc ответил - мне не хватало 'Content-Type': 'application/json'.

user3094755 06.11.2018 13:09

@ user3094755 как @ Danielo515 отображается в ответе json: true не работает?

Haritsinh Gohil 06.11.2018 13:15

Вполне возможно, что json: true в библиотеке запросов имеет тот же эффект, что и добавление Content-Type: 'application / json' '', но мне не нужно было добавлять библиотеку запросов.

user3094755 06.11.2018 13:27

Да, добавление JSON true должно правильно настроить запрос. Библиотека запросов хороша тем, что она правильно заботится о многих деталях. Не уверен, наконец, что у вас это работает или нет

Danielo515 06.11.2018 13:29

Другие вопросы по теме