add user agent

master
Kanezoh 2021-07-01 12:08:23 +09:00
parent e0aa2d9576
commit 7d4b206dc1
2 changed files with 15 additions and 0 deletions

View File

@ -6,9 +6,14 @@ require "./mechanize/errors/*"
class Mechanize
VERSION = "0.1.0"
AGENT = {
"Mechanize" => "Mechanize/#{VERSION} Crystal/#{Crystal::VERSION} (https://github.com/Kanezoh/mechanize.cr)",
}
def initialize()
@agent = MechanizeCr::HTTP::Agent.new
@agent.context = self
@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)

View File

@ -6,16 +6,20 @@ module MechanizeCr
class Agent
property :request_headers, :context, :cookies
property history : Array(Page)
property user_agent : String
def initialize(@context : Mechanize | Nil = nil)
@history = Array(Page).new
@request_headers = ::HTTP::Headers.new
@context = context
@cookies = Hash(String, ::HTTP::Cookies).new
@user_agent = ""
end
def fetch(uri, method = :get, headers = HTTP::Headers.new, params = Hash(String,String).new)
uri = resolve(uri)
set_request_headers(uri, headers)
request_user_agent
uri, params = resolve_parameters(uri, method, params)
response = http_request(uri, method, params)
body = response.not_nil!.body
@ -119,6 +123,12 @@ module MechanizeCr
cookies[host] << cookie
end
end
private def request_user_agent
unless user_agent == ""
request_headers["User-Agent"] = user_agent
end
end
end
end
end