windows - 如何在 Windows 上将 Chrome 的 "Copy as cURL"用于多部分/表单数据发布请求?

标签 windows forms curl google-chrome-devtools

我正在为 Web 应用程序开发一个模块。要触发这个模块,我需要向服务器提交一些数据。对于简单的表格,Copy as cURL在 Chrome 开发者工具中工作正常(使用来自 msys[git] 的 curl),但是对于带有 multipart/form-data 的 post 请求, 复制的字符串在 windows shell (cmd) 和 bash (form msys) 中均不可用;复制的文本类似于:
curl“http://myserver.local”-H“来源:http://wiki.selfhtml.org”-H“接受编码:gzip,放气”-H“接受语言:de-DE,de;q =0.8,en-US;q=0.6,en;q=0.4"-H "用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"-H "内容类型:multipart/form-data;边界=----WebKitFormBoundaryntXdlWbYXAVwCIMU"-H "接受:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, */*;q=0.8"-H "缓存控制:max-age=0"-H "引用:http://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:HTML_form-Element1。 html"-H "连接:保持事件"--data-binary "-----WebKitFormBoundaryntXdlWbYXAVwCIMU"^
“内容处置:表格数据;名称=”“区域”“”^

“多”^
“线”^
"-----WebKitFormBoundaryntXdlWbYXAVwCIMU--"^
""-- 压缩的

有什么办法可以使用它或将其转换为可用的东西吗?

最佳答案

Chrome 以及其他浏览器实际上在将多部分表单帖子转换为 curl 命令行方面做得相当差。
更方便的 curl 命令行不会为此使用 --data-binary ,而是使用 --form 。然后你想要每个输入字段一个 --form
在您的情况下,它可能看起来像(在此处插入反斜杠
可见性):

curl "http://myserver.local" \
 --compressed \
 -H "Origin: http://wiki.selfhtml.org" \
 -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36" \
 -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" \
 -H "Cache-Control: max-age=0" \
 -e "http://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:HTML_form-Element1.html" \
 -F area=[contents]
我将 [contents] 留在了那里,但它应该替换为 area 字段中您真正想要的内容。如果您愿意,也可以从文件中传递它。
我删除了两个不必要的 -H 使用,并替换了两个以使用直接 curl 选项。
h2c - curl 的标题
对 future 的建议:找出您想要使用 curl 命令行重现的确切 HTTP header 跟踪,并将其粘贴到 https://curl.se/h2c/ 处。

关于windows - 如何在 Windows 上将 Chrome 的 "Copy as cURL"用于多部分/表单数据发布请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31047882/

相关文章:

windows - Git pull 错误 : unable to create file (Invalid argument)

php - 在较大的表单中上传文件(一个页面上的两个表单),如何同时提交两组数据(文件和表单)? (PHP)

javascript - jQuery Form - 序列化为多维数组?

php - 我的 PayPal 脚本突然停止验证 SSL 证书

java - 如何在 Windows 机器上检查 java 无限强度加密策略

c++ - 相当于 Linux 中的导入库

Windows 上的 C++ std::string 转换问题

javascript - getElementById 和 JQuery 不返回相同的结果

使用 Curl 下载文件的 Bash 脚本

linux - 完成从 tarball 中提取给定文件后,管道 un-tar kill pipe