def make_request(submit_name=nil)
secrets = []
case @method
when 'get'
case @enctype
when 'application/x-www-form-urlencoded'
query = encode_application_x_www_form_urlencoded(submit_name)
secrets << query
request_uri = @action_uri.request_uri + "?"
request_uri += query
secrets << request_uri
uri = @action_uri.dup
if uri.query
uri.query << '?' << query
else
uri.query = query
end
req = WFO::ReqHTTP.get(uri)
else
raise "unexpected enctype: #{@enctype}"
end
when 'post'
case @enctype
when 'application/x-www-form-urlencoded'
query = encode_application_x_www_form_urlencoded(submit_name)
secrets << query
req = WFO::ReqHTTP.post(@action_uri, 'application/x-www-form-urlencoded', query)
else
raise "unexpected enctype: #{@enctype}"
end
else
raise "unexpected method: #{@method}"
end
if @referer_uri
req['Referer'] = @referer_uri.to_s
end
if block_given?
begin
yield req
ensure
secrets.each {|s|
KeyRing.vanish!(s)
}
end
else
req
end
end