【问题标题】:Binary Data Posting with curl使用 curl 发布二进制数据
【发布时间】:2012-02-03 18:59:03
【问题描述】:

所以基本上,我正在尝试编写一系列脚本来与 Dot Net Nuke 进行交互。我一直在分析流量,现在可以登录并执行一些基本任务。但是,我从未使用 curl 处理过二进制文件上传。有人愿意看这个来帮助我吗?这是请求的剖析:

http://pastebin.com/qU8ZEMaQ

到目前为止,这是我对 curl 的了解:

http://pastebin.com/LG2ubFZG

编辑:对于懒惰的人-

文件的长度已达到并以 LENGTH 形式存储
STUFF 只是带有参数的请求 URL 的复制/粘贴,减去 URL 本身。

curl -L --cookie ~/.cms --data-binary "@background.jpg" \
--header "Content-Length: $LENGTH" \
--header "Content-Disposition: form-data" \
--header "name=\"RadFileExplorer1_upload1file0\"" \
--header "Content-Type: image/jpg" \
--header "Filename=\"background.jpg\"" \
--data $STUFF \
--referer "Kept-Secret" \
"Kept-Secret"

【问题讨论】:

    标签: bash post curl dotnetnuke binary-data


    【解决方案1】:

    您不需要 --header "Content-Length: $LENGTH"

    curl --request POST --data-binary "@template_entry.xml" $URL

    请注意,GET 请求不支持广泛的内容正文。

    还要记住 POST 请求有 2 种不同的编码模式。这是第一种形式:

    $ nc -l -p 6666 & $ curl --request POST --data-binary "@README" http://localhost:6666 发布/HTTP/1.1 用户代理:curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6 主机:本地主机:6666 接受: */* 内容长度:9309 内容类型:application/x-www-form-urlencoded 期望:100-继续 .. -*- 模式:rst;编码:cp1251;填充列:80 -*- .. rst2html.py 自述文件 README.html .. 内容::

    您可能要求这样做:

    -F/--表格名称=内容 (HTTP) 这让 curl 在 用户按下了提交按钮。这 导致 curl 使用 ContentType POST 数据 multipart/form-data 根据 RFC2388。这 允许上传二进制文件等。强制 'content' 部分为文件,文件名前缀 带有@符号。仅从 a 获取内容部分 文件,在文件名前加上符号

    【讨论】:

    • 感谢您的回复。不幸的是,什么都没有发生。您可以快速浏览一下后解剖结构吗?您将如何在 curl 命令中添加类似:------WebKitFormBoundarymXQVUy6BiZBV3AxA Content-Disposition: form-data; name="RadFileExplorer1$currentFolder" /Portals/0/Images/Test/ 的内容?那会是通过标题吗?或者既然它有名字,它会通过常规的帖子数据吗?
    • 我记得对于 POST 请求,存在不同的编码模式(可能是为了管理 FORM html 标签??)。
    • 通常使用 curl 你可以说类似 curl -d "username=cheese&password=123456" ,但当我使用 Chrome/Firebug 进行检查时,它看起来也大不相同。我当然看不到 Content-Disposition 等等。不知道你在提交明文和二进制数据时是否需要特殊版本的POST数据。
    • 参见 --form 选项和 google 的 Content-Type multipart/form-data 来自 RFC2388。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 2018-01-24
    • 1970-01-01
    • 2014-01-22
    • 2020-11-11
    • 1970-01-01
    相关资源
    最近更新 更多