uri = URI("#{ODM}/task/new/upload/#{oid}") request = Net::HTTP::Post.new(uri) form_data = [ ['images', attachment.tempfile, { filename: attachment.original_filename, content_type: attachment.content_type }] ] request.set_form form_data, 'multipart/form-data' response = Net::HTTP.start(uri.hostname, uri.port) do |http| # pay attention to use_ssl if you need it http.request(request) end JSON.parse(response.body)