API-интерфейс ShortPixel запроса Formdata - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь сделать запрос на ShortPixel, если это запрос с multipart / form-data, и я получаю возврат

{ Status: { Code: -115, Message: 'Uploaded files are missing.' } } }

API-ссылка https://shortpixel.com/api-docs#reducer-api-params

const FormData = require("form-data")
const axios = require('axios')
const data = new FormData();
const url = 'https://api.shortpixel.com/v2/post-reducer.php'

const config = {  headers: {
  'accept': 'application/json',
  'Accept-Language': 'en-US,en;q=0.8',
  'Content-Type': `multipart/form-data; boundary=${data._boundary}`,
}}

data.append('hiroshi.png', fs.createReadStream("/home/hiroshi/Documents/projetos/compress/imagens/original/hiroshi.png"), 'hiroshi.png');


axios.post(url,options,{formData:data}, config)
  .then((response) => {
    console.log(response)
  }).catch((error) => {
   console.log(error)
  });

1 Ответ

0 голосов
/ 16 января 2019

Я не уверен, что означает запрос данных из нескольких частей.Я бы просто собрал данные формы в объект на стороне сервера и отправил его так:

let postData =  { 
    "key": "api_key_here",
    "plugin_version": "JS123",
    "lossy": 1,
    "cmyk2rgb": 1,
    "refresh": 1,
    "resize": 3,
    "wait":30,
    "resize_width":100,
    "resize_height":100,
    "urllist":["http://example.com/example.png", "http://example.com/example2.png"]
    }

    axios.post('https://api.shortpixel.com/v2/reducer.php',postData, {
        headers: {
        "Content-Type": "application/json"
        }
    })
    .then(function (response) {
        console.log(response.data);
    })
    .catch(function (error) {
        console.log(error);
    });

Вы можете добавить любые переменные для объекта postData, который я создал выше.

edit: О, я вижу, вы используете API после редуктора, тогда как выше я просто использую редуктор.Вы решили это?

...