我有一个服务器API,它是我针对Fiddler用于文件HTTP post的格式开发的,这是一个多部分/表单数据post。我试图让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=part,后面是这个部分底部的文件内容。我试过这样做:
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?
但他们基本上是说做一些像我在这里做的事情。所以问题可能不是我的语法,而是它不想读取文件的其他原因
对于更复杂的请求:
您可以将多个块一起设置为一个请求。有关更多信息,请查看:https://docs.microsoft.com/en-us/azure/digital-twins/how-to-add-blobs
或
-X POST由-F表示(每个注释),引号是可选的
相关问题 更多 >
编程相关推荐