curl - 在文件上传中使用curl来处理多部分/表单数据

标签 curl multipart

我有一个服务器API,它是根据Fiddler用于执行HTTP HTTP文件发布的格式开发的,该文件是multipart/form-data发布。我正在尝试让curl执行类似的操作(因此,我可以停止使用Fiddler进行测试,而改为使用单独的程序调用以编程方式进行 curl )。

这是在Fiddler中设置的方式,这是我需要复制的内容。要上传的文件是myfile.html:

---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="myfile.html"
Content-Type: text/html

<@INCLUDE *C:\myfiles\myfile.html*@>
---------------------------acebdf13572468--

因此,我需要的是curl产生类似的东西:特别是name =部分,然后是该部分底部的文件内容。我已经尝试过使用:
curl -F "fieldNameHere=myfile.html" http://myapi.com/

当我这样做时,它似乎完全忽略了我的文件。如果添加-v,这是详细的输出:
POST / HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Host: perl-h4.factset.io
Accept: */*
Content-Length: 166
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------981301fdaeb3

根本没有文件内容(这是一个很大的HTML文件)。因此,我认为这里可能缺少一些基本知识。任何指针都将受到欢迎。

另外,我检查了其他StackOverflow问题,例如:What is the right way to POST multipart/form-data using curl?

但是他们基本上是说要像我在这里所做的那样做。因此,问题可能出在我的语法上,而不是我的语法上,但又有其他原因它不想读取文件。

最佳答案

curl -X POST  -F fieldNameHere=@myfile.html  http://myapi.com/

或者

-F表示-X POST(每个注释),引号是可选的
curl -F "fieldNameHere=@myfile.html"  http://myapi.com/

关于curl - 在文件上传中使用curl来处理多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46960397/

相关文章:

linux - 如何使用 curl 命令调用具有 getopts 的 bash 脚本?

json - 从控制台使用 json 和 curl 的工具

json - 对graphql端点的curl查询中多行 '--data'的正确格式?

php - 使用 PHP 进行安全的 SSL/HTTPS API 调用

email - 带有不可点击链接的 HTML 和文本电子邮件

ssl - 支付网关 HTTP 错误 : cURL ERROR: 51: SSL: certificate subject name 'seguro3.cpmp.com.gt' does not match target host name '190.0.195.24'

html - 多部分/表单数据的示例

java - 阅读 MIME 多部分的正文部分

email - 多部分电子邮件中的数字是什么意思?

java - 带有多部分文件上传的 Spring REST API 不适用于可选参数