curl 命令上传文件到表单

curl command to upload file to form

我正在尝试构建一个 curl 命令,它将我的 xpi 上传到 Mozilla Add-on Validator 进行验证。

我已经用 fiddler 捕获了流量,以查看站点在做什么并尝试从 curl 模仿它的行为。

我已经看到了 post url,并尝试了 curl https://addons.mozilla.org/en-US/developers/standalone-upload --form 'upload=@path-to-xpi.xpi'csrfmiddlewaretoken=@path-to-xpi.xpi。并且还尝试添加 Content-Type.

这是第一个请求的原始数据:

POST https://addons.mozilla.org/en-US/developers/standalone-upload HTTP/1.1 Host: addons.mozilla.org Connection: keep-alive Content-Length: 41021 Origin: https://addons.mozilla.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryI0LeCjkeJnsfGipU Accept: */* Referer: https://addons.mozilla.org/en-US/developers/addon/validate Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8,he;q=0.6 Cookie: _ga=GA1.2.710702590.1450107779; sessionid=".eJyrVkouLkqLL8nPTs1TslLKznAOTYzI8czOTEzxCTe0SCzKichONjMO8PUO9Q5wcVfSUYpPLC3JiC8tTi2Kz0xRsjI0MrCwNDE3QZFISkwGmgeUVQJxi_Wg_GI9x9z8UKCIE1QeqKk4tbg4Mz8vPrWiILOoEmyepZmBQS0Aqsk0IA:1aLYVj:cbZQtNCkFRasDdFtJKI9b_WB6GA" ------WebKitFormBoundaryI0LeCjkeJnsfGipU Content-Disposition: form-data; name="csrfmiddlewaretoken" khCUaXlIkiadLW18arlXkc63PMKUKPDG ------WebKitFormBoundaryI0LeCjkeJnsfGipU Content-Disposition: form-data; name="upload"; filename="extension.xpi" Content-Type: application/octet-stream

目前我收到一个 html 不允许的页面。

我错过了什么?我还应该在请求中添加什么以获得良好的响应?

谢谢

没有解决 curl 上传命令问题,但解决了原始问题 - 通过命令行验证 xpi。

通过命令行验证 xpi[=​​15=]

这可以通过 Mozilla 的 addons-linter 实现,提出这个问题时它还处于早期阶段。