Я пытаюсь опубликовать некоторые данные из моего приложения для Android в Sinatra на моем компьютере. Синатра слушает с:
post '/upload' do
puts "*****************************************"
puts "!!!!!!!! #{params.inspect}"
end
И терпит неудачу с:
ERROR NoMethodError: undefined method `rewind' for "ho":String
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/utils.rb:576:in`block in parse_multipart'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/utils.rb:499:in`loop'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/utils.rb:499:in`parse_multipart'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/request.rb:270:in `parse_multipart'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/request.rb:148:in `POST'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/methodoverride.rb:15:in `call'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/base.rb:1272:in `block in call'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/base.rb:1303:in `synchronize'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.2.6/lib/sinatra/base.rb:1272:in `call'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/content_length.rb:13:in `call'
D:/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/handler/webrick.rb:52:in `service'
D:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
D:/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
D:/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
Параметры сообщения: {"hey" => "ho"}
. Я распечатал переменную body
внутри rack / utils.rb и получил "ho"
, поэтому я полагаю, что Синатра задыхается. Я не могу понять, почему, хотя. Публикация на другом сервере прошла успешно. Есть идеи, что я делаю не так?
Я могу опубликовать код Java, но, как обычно для Java, это очень многословно. Я также думаю, что это не проблема, так как он успешно отправляет сообщения на удаленный сервер, как я уже говорил.