现在有一个 API ,没有文档没有参数说明。
现在需要一个 shell 脚本,通过这个 API 上传一份文件。
我感觉应该是一种通用的模板,所以想问一下大家,如何按照上面的格式通过curl
上传文件?
Ps:请勿发表无用观点诸如:换 API 、没文档谁知道等等。
我想问一下boundary参数会自动生成吗,另外还有就是如果直接-F "[email protected]"
的话--data-binary参数会不会直接等于文件的二进制内容呀
1
israinbow 2021-12-13 22:44:50 +08:00
个人愚见:
有授权参数, 应该是用了 jwt 标准, 文件还带有参数, 可能是用 json 发送的, 数据内容太复杂了, 直接用 curl 传不了, 得写个程序模拟后端上传的方法才行. |
2
yuzo555 2021-12-13 22:52:13 +08:00
标准的 HTML Form 上传,你构建一个网页表单都可以了。
参考: https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript |
3
6IbA2bj5ip3tK49j 2021-12-13 22:56:16 +08:00 3
@israinbow 牛逼,一个也没对。
|
4
izoabr 2021-12-13 23:08:01 +08:00
看着挺正常的 Form Data 呀,正常 Form 上传就这样的数据呀,看 Authorization 好像也没太强制有效的东西,直接传就好了,但你得知道 POST 地址哦。
|
5
Dreax 2021-12-13 23:08:13 +08:00
-F "[email protected]"
|
7
oott123 2021-12-13 23:15:53 +08:00 via Android
2 4 5 楼都正确,楼主补补 HTTP 课
|
8
LxnChan OP @Dreax 我想问一下 boundary 参数会自动生成吗,另外还有就是如果直接-F "[email protected]"的话--data-binary 参数会不会直接等于文件的二进制内容呀
|
9
woodnaonly 2021-12-13 23:58:11 +08:00
这文档比接口都方便啊,标准的 http 协议
head 有 authorization 头 content-type 是 form-data curl 5 楼正解了 有些文档用啥传输都写不出清楚 是 form-data 还是 base64 一无所知 后端只知道他自己写的代码。 |
10
eason1874 2021-12-14 01:18:49 +08:00
@LxnChan #8 boundary 是 multipart/form-data 特性,用于传输多个文件时区分不同文件主体
只要是完备的 HTTP 客户端(比如 cURL ),开启 Content-Type=multipart/form-data 就会自动添加 boundary 和 --data-binary ,这个你不用管 按 #5 说的试一试就懂了 |
11
jalena 2021-12-14 02:15:48 +08:00
Vscode + REST Client(插件)
完全满足你的要求! |
12
jalena 2021-12-14 02:19:37 +08:00
TENANT-ID 应该是租户
首先这是一个 post 接口,参数应该就是一个 MultipartFile 你上面的这些完全就是 rest Client 的调用接口方式。 |