【问题标题】:request command equivalent to cURL command not working等效于 cURL 命令的请求命令不起作用
【发布时间】:2017-08-18 07:35:26
【问题描述】:

cURL 命令:

curl -F "json_query=</Users/somename/Desktop/API/payload/upload_image_payload.json" -F "file=@/Users/somename/Desktop/API/payload/image.png" http://url/api/upload_outgoing_media.php

node.js 命令:

var options = { method: 'POST',
                url: 'http://url/api/upload_outgoing_media.php',
                headers: 
                { 'content-type': 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' },
                formData: 
                { 
                    json_query: 
                        { value: 'fs.createReadStream("/Users/somename/Desktop/API/payload/upload_image_payload.json")',
                            options:
                            { filename: '/Users/somename/Desktop/API/payload/upload_image_payload.json',
                                contentType: null } }
                        },
                    file: 
                        { value: 'fs.createReadStream("/Users/somename/Desktop/API/payload/image.png")',
                            options:
                            { filename: '/Users/somename/Desktop/API/payload/image.png',
                                contentType: null } },

                };
                console.log("second")
                request(options, function (error, response, body) {
                if (error) throw new Error(error);

                console.log(response.body);
                });

预期输出: {"meta":null,"payload":{"filename":"image.png"},"error":false}

返回的输出: {"meta":null,"payload":null,"error":{"errortext":"no data","errorcode":null}}

【问题讨论】:

    标签: node.js curl request


    【解决方案1】:

    找到了解决办法。

    在 curl 查询中是加载 json 文件的内容而不是 json 文件本身,所以在 NODE QUERY 中它必须是:-

    json_query: jsonData --> 你的json文件数据

    formData: 
            { 
             json_query: jsonData,
              file:
              { value: 'fs.createReadStream("/Users/somename/Desktop/API/payload/image.png")',
               options:
               { filename: '/Users/somename/Desktop/API/payload/image.png',
                contentType: null } }
    
            }};
    

    这有效并且正在返回预期的输出。

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2019-07-07
      • 1970-01-01
      • 2012-09-06
      • 2016-09-24
      • 1970-01-01
      相关资源
      最近更新 更多