Kle*_*ack 8 forms windows curl google-chrome-devtools
我正在为Web应用程序开发一个模块.要触发此模块,我需要向服务器提交一些数据.对于简单的表单,从开发人员工具"复制为cURL"工作正常(使用来自msys [git]的curl),但是对于具有multipart/form-data的post请求,复制的字符串既不能用于windows shell(cmd)也不能用于bash (表格msys); 复制的文本类似于
curl "http://myserver.local" -H "Origin: http://wiki.selfhtml.org" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryntXdlWbYXAVwCIMU" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "Cache-Control: max-age=0" -H "Referer: http://wiki.selfhtml.org/extensions/Selfhtml/frickl.php/Beispiel:HTML_form-Element1.html" -H "Connection: keep-alive" --data-binary "------WebKitFormBoundaryntXdlWbYXAVwCIMU"^ "Content-Disposition: form-data; name=""area"""^ "multi"^ "line"^ "------WebKitFormBoundaryntXdlWbYXAVwCIMU--"^ "" --compressed
有什么办法,我可以使用它或将其转换为可用的东西吗?
Dan*_*erg 29
实际上,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]
Run Code Online (Sandbox Code Playgroud)
我把 [contents] 留在了那里,但应该用你在area现场真正想要的来代替它。如果您愿意,也可以从文件中传递它。
我删除了两个不必要的-H用途,并替换了两个以使用直接卷曲选项。
对未来的建议:找出要使用 curl 命令行重现的确切 HTTP 标头跟踪,并将其粘贴到https://curl.se/h2c/。
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |