【问题标题】:Use Ruby Mechanize to simulate file uploading by Flash使用Ruby Mechanize模拟Flash上​​传文件
【发布时间】:2012-03-03 15:27:13
【问题描述】:

我想使用 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 的输入元素。然后提交带有自定义标题(如用户代理等)的表单。但是我仍然很难处理文件上传部分。任何人都可以帮助我吗?谢谢!

【问题讨论】:

  • 您是否查看过机械化代码以了解它如何处理多部分表单?您应该能够调整用于发送自定义多部分请求的代码。

标签: ruby file-upload mechanize mechanize-ruby


【解决方案1】:

它应该看起来像这样:

agent.post url, 'FileData' => File.new('learning_objectives.flv')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2021-01-18
    • 2011-05-14
    相关资源
    最近更新 更多