sinatra側で、その時のユーザ名とパスワードを取得する方法です。
auth_info = Base64.decode64(request.env['HTTP_AUTHORIZATION'].split(' ')[1]).split(':') username = auth_info[0] password = auth_info[1]
auth_info = Base64.decode64(request.env['HTTP_AUTHORIZATION'].split(' ')[1]).split(':') username = auth_info[0] password = auth_info[1]
data = {} env["rack.request.form_vars"].split("&").each do |d| (k,v) = d.split("=") k = URI.decode(k).toutf8 v = URI.decode(v).toutf8 unless v.nil? if data[k].nil? data[k] = v else data[k] = data[k] + ", " + v end end
require 'rubygems' require 'sinatra' post '/upload' do if params[:file] content_type params[:file][:type] f = params[:file][:tempfile] f.read f.size end end
require 'rubygems' it "アップロードしたらファイルの中身が帰ってくる" do upload_file = File.dirname(__FILE__) + "/foo.txt" post_file = Rack::Test::UploadedFile.new(upload_file) post "/upload", "file" => post_file last_response.body.should == "foo" end