file download
This commit is contained in:
parent
b0aec842ee
commit
ae0650d2be
@ -56,4 +56,11 @@ describe "Mechanize Agent test" do
|
||||
agent2.history.size.should eq 1
|
||||
agent2.history.pop.uri.to_s.should eq "http://example.com/form"
|
||||
end
|
||||
|
||||
it "can download page" do
|
||||
agent = Mechanize.new
|
||||
agent.download("http://example.com", "mechanizecr_example.html")
|
||||
File.exists?("mechanizecr_example.html").should eq true
|
||||
File.delete("mechanizecr_example.html")
|
||||
end
|
||||
end
|
||||
|
@ -17,7 +17,9 @@ class Mechanize
|
||||
@agent.user_agent = AGENT["Mechanize"]
|
||||
end
|
||||
|
||||
def get(uri : String | URI, headers = HTTP::Headers.new, params : Hash(String, String | Array(String)) = Hash(String, String).new)
|
||||
def get(uri : String | URI,
|
||||
headers = HTTP::Headers.new,
|
||||
params : Hash(String, String | Array(String)) = Hash(String, String).new)
|
||||
method = :get
|
||||
page = @agent.fetch uri, method, headers, params
|
||||
add_to_history(page)
|
||||
@ -25,7 +27,9 @@ class Mechanize
|
||||
page
|
||||
end
|
||||
|
||||
def post(uri : String | URI, headers = HTTP::Headers.new, query : Hash(String, String | Array(String)) = Hash(String, String).new)
|
||||
def post(uri : String | URI,
|
||||
headers = HTTP::Headers.new,
|
||||
query : Hash(String, String | Array(String)) = Hash(String, String).new)
|
||||
node = Node.new
|
||||
node["method"] = "POST"
|
||||
node["enctype"] = "application/x-www-form-urlencoded"
|
||||
@ -119,4 +123,19 @@ class Mechanize
|
||||
href = link.href
|
||||
get href
|
||||
end
|
||||
|
||||
# download page body from given uri.
|
||||
# TODO: except this request from history.
|
||||
def download(uri,
|
||||
filename,
|
||||
headers = HTTP::Headers.new,
|
||||
params : Hash(String, String | Array(String)) = Hash(String, String).new)
|
||||
page = get(uri, headers, params)
|
||||
|
||||
case page
|
||||
when MechanizeCr::File
|
||||
File.write(filename, page.body)
|
||||
end
|
||||
page
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user