求助如何通过没有文档的接口上传文件

2021-12-13 20:55:50 +08:00
 LxnChan

现在有一个 API ,没有文档没有参数说明。

现在需要一个 shell 脚本,通过这个 API 上传一份文件。

我感觉应该是一种通用的模板,所以想问一下大家,如何按照上面的格式通过curl上传文件?

Ps:请勿发表无用观点诸如:换 API 、没文档谁知道等等。

1563 次点击
所在节点    程序员
13 条回复
israinbow
2021-12-13 22:44:50 +08:00
个人愚见:
有授权参数, 应该是用了 jwt 标准, 文件还带有参数, 可能是用 json 发送的, 数据内容太复杂了, 直接用 curl 传不了, 得写个程序模拟后端上传的方法才行.
yuzo555
2021-12-13 22:52:13 +08:00
标准的 HTML Form 上传,你构建一个网页表单都可以了。

参考: https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_forms_through_JavaScript
xgfan
2021-12-13 22:56:16 +08:00
@israinbow 牛逼,一个也没对。
izoabr
2021-12-13 23:08:01 +08:00
看着挺正常的 Form Data 呀,正常 Form 上传就这样的数据呀,看 Authorization 好像也没太强制有效的东西,直接传就好了,但你得知道 POST 地址哦。
Dreax
2021-12-13 23:08:13 +08:00
-F "file=@test.jpg"
LxnChan
2021-12-13 23:09:59 +08:00
@izoabr 但是他这个图片前面有数据,后面也有结尾,还有那个 boundary 参数
oott123
2021-12-13 23:15:53 +08:00
2 4 5 楼都正确,楼主补补 HTTP 课
LxnChan
2021-12-13 23:49:31 +08:00
@Dreax 我想问一下 boundary 参数会自动生成吗,另外还有就是如果直接-F "file=@test.jpg"的话--data-binary 参数会不会直接等于文件的二进制内容呀
woodnaonly
2021-12-13 23:58:11 +08:00
这文档比接口都方便啊,标准的 http 协议
head 有 authorization 头
content-type 是 form-data
curl 5 楼正解了
有些文档用啥传输都写不出清楚
是 form-data 还是 base64 一无所知
后端只知道他自己写的代码。
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 说的试一试就懂了
jalena
2021-12-14 02:15:48 +08:00
Vscode + REST Client(插件)

完全满足你的要求!
jalena
2021-12-14 02:19:37 +08:00
TENANT-ID 应该是租户

首先这是一个 post 接口,参数应该就是一个 MultipartFile

你上面的这些完全就是 rest Client 的调用接口方式。
LxnChan
2021-12-14 08:38:29 +08:00
@eason1874 okk 我去试一下

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

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

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

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

© 2021 V2EX