我一直在使用cURL成功地与基于Flash的网页进行互动以提取数据,但是现在我尝试使用网站的上传功能来提供文件。对于工作请求,我会分解使用Chrome开发人员工具发出的请求,并在cURL中重新创建它们。但是当我尝试上传文件时,我得到了{"错误":"没有提供文件"}的JSON响应。
从开发工具中提取的代码格式不起作用:
curl "<URL>" -H "Origin: <URL>" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US,en;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36" -H "Content-Type: multipart/form-data; boundary=----pluploadboundary1454508647816" -H "Accept: */*" -H "Referer: <URL>" -H "X-Requested-With: ShockwaveFlash/20.0.0.286" -H "Connection: keep-alive" -H "DNT: 1" --data-binary "------pluploadboundary1454508647816"^"Content-Disposition: form-data; name=""name"""^"unblock_User.xls"^"------pluploadboundary1454508647816"^"Content-Disposition: form-data; name=""file""; filename=""unblock_User.xls"""^"Content-Type: application/vnd.ms-excel"^
我尝试将其更改为使用标准的--data-binary = @文件,其中@file包含文件的边界和原始二进制数据,但无济于事。该文件的内容是:
------ pluploadboundary1453998534666
内容 - 处置:表单数据;名称=&#34;名称&#34;
unblock_once.xlsx
------ pluploadboundary1453998534666
内容 - 处置:表单数据;命名=&#34;文件&#34 ;;文件名=&#34; unblock_once.xlsx&#34;
Content-Type:application / vnd.ms-excel
原始数据可以通过将二进制文件添加到此部分,我可以在此处使用文件路径吗?
------ pluploadboundary1453998534666 -
答案 0 :(得分:0)
很难确切地知道这里出了什么问题,不知道你正在反对的webapp。但是,我刚刚解决了类似的问题并发现了一些陷阱:
解决了这些问题后,我得到了--data-binary = @ file方法。