簡體   English   中英

NodeJs與xmlrpc服務器通信,node-xmlrpc庫的base64編碼,將下載的url圖片編碼為base64

[英]NodeJs communication with xmlrpc server and base64 encode for node-xmlrpc library, encode downloaded url images into base64

如何將圖像轉換為二進制數據並將其發送到 xml-rpc 服務器? 我怎樣才能進行多次調用?

如果您使用的是 node-xmlrpc 庫:對於二進制數據,您必須僅使用 Buffer.from(body),而不是 .toString('base64)!

這是一個下載 url 圖像並將它們發送到 xml-rpc 服務器的示例。

let base64data = [];
let data = [];
const binaryImage = require("request").defaults({ encoding: null });

images.map(async (url_image) => {
  await binaryImage.get(
    `${url_image}`,
    async function (error, response, body) {
      if (!error && response.statusCode == 200) {
        url_image = Buffer.from(body);
        base64data.push(url_image);
        data.push({ photo: base64data, id: 0 });
      };
    },
  );
});

如果你想要一個乘法調用,你可以很容易地做到:

setTimeout(() => {
  base64data.map((image, idx) => {
    setTimeout(() => {                           
        computeSessionId(sid, pw, key),          // if you need to compute session
        client.methodCall(
          "method",                              // method call
          [sid, params, { data: image, id: 0 }], // params, struct, where are images as buffer will automatically converted to base64 (binary)
          function (error, value) {
            if (error) {
              console.log("res body:", error.body);
            } else {
              console.log(value);
            }
          }
        );
    }, idx * 100);                               // + 100 each image need some times
  });
}, 1000)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM