我想使用Ruby Mechanize为网站编写自动文件上传脚本。但是网站的阅读上传步骤是由Flash文件完成的。我使用 fiddler 捕获了从Flash文件到服务器的流量。就是这样。
POST /upload.php HTTP/1.1
Accept: text/*
Content-Type: multipart/form-data; boundary=----------KM7KM7Ij5KM7KM7ei4GI3GI3gL6GI3
User-Agent: Shockwave Flash
Host: 119.147.15.17<this is fake IP address>
Content-Length: 7800236
Connection: Keep-Alive
Pragma: no-cache
------------KM7KM7Ij5KM7KM7ei4GI3GI3gL6GI3
Content-Disposition: form-data; name="Filename"
learning_objectives.flv
------------KM7KM7Ij5KM7KM7ei4GI3GI3gL6GI3
Content-Disposition: form-data; name="FileData"; filename="learning_objectives.flv"
Content-Type: application/octet-stream
This_is_the_real_data_in_learning_objectives.flv
我的问题是如何模拟这篇帖子的要求?目前我能想到的是自己创建一个表单并添加一个类型为 file 的输入元素。然后使用自定义标题(例如用户代理等)提交此表单。但是我在处理文件上传部分时仍然很困难。有人可以帮我吗?谢谢!
答案 0 :(得分:1)
看起来应该是这样的:
agent.post url, 'FileData' => File.new('learning_objectives.flv')