与这段 Python 的等效 node 代码怎么写?

2022-08-08 20:53:58 +08:00
 KouShuiYu

主要是文件不知道怎么附加到参数中?

r = requests.post(api_url,sign_parameter,files=request._file_params, timeout=self._timeout)

完整的文件https://gist.github.com/ckvv/d0e4d114471ebdaae209f92534481d5a#file-lazada-py-L164

client = lazop.LazopClient(url, appkey ,appSecret)
request = lazop.LazopRequest('/marketing/rta/material/upload')
request.add_api_param('member_id', '111')
request.add_api_param('country', 'ID')
request.add_api_param('upload_type', 'UPLOAD_BY_FILE')
request.add_api_param('file_signature', '63d5ceda3355cd3dbc163351b7702a09')
request.add_api_param('file_name', 'xxx.png')
request.add_api_param('tag', '101,102')
request.add_api_param('note', 'note')
request.add_api_param('content_type', 'Image/png')
request.add_file_param('file',open('/Users/IopSdk.py').read())
response = client.execute(request)
print(response.type)
print(response.body)
1628 次点击
所在节点    Python
5 条回复
blankmiss
2022-08-08 22:09:56 +08:00
Google:python requests post from 表单 文件提交
blankmiss
2022-08-08 22:10:47 +08:00
哦 你是像知道 js 怎么写 那没事了当我没说
KouShuiYu
2022-08-09 10:28:19 +08:00
@blankmiss python 表单提交文件是怎么处理的?为什么需要单独一个参数啊?
filwaline
2022-08-09 15:16:05 +08:00
你这问题与 Python 无关,去 js 区提问更合适。

至于问题本身,每种不同的 http 库都可能有不同的接口,更别说跨语言了。你想要知道在 node 怎么写一个提交文件的请求,至少要说明你用了哪个 node 的 http 库吧?

假设你用的是 axios ,那么请参考它的文档 https://axios-http.com/docs/req_config
参考样例,你可能会写出如下 node 代码(没有测试过,仅供参考)
```
url = ...
file = ... # some file object
axios.post(
url, data={'file':file, ...}, ...
)
...
```
filwaline
2022-08-09 15:19:52 +08:00
上一个回答的代码是随手写的,有 bug 的可能性不小。

你可以直接参考一个更有用的回答 https://stackoverflow.com/questions/43013858/how-to-post-a-file-from-a-form-with-axios

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX