X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c45740b81c294acb81667371d37730592d558b98..2ba98c3332a8c59db9c339b833ed1f7e953cf76d:/lib/google/api_client/request.rb diff --git a/lib/google/api_client/request.rb b/lib/google/api_client/request.rb index 704f24b54d..bfe3abab27 100644 --- a/lib/google/api_client/request.rb +++ b/lib/google/api_client/request.rb @@ -13,9 +13,7 @@ # limitations under the License. require 'faraday' -require 'faraday/utils' require 'faraday/request/multipart' -require 'multi_json' require 'compat/multi_json' require 'addressable/uri' require 'stringio' @@ -153,10 +151,13 @@ module Google # # @param [Faraday::Connection] connection # the connection to transmit with + # @param [TrueValue,FalseValue] is_retry + # True if request has been previous sent # # @return [Google::APIClient::Result] # result of API request - def send(connection) + def send(connection, is_retry = false) + self.body.rewind if is_retry && self.body.respond_to?(:rewind) env = self.to_env(connection) logger.debug { "#{self.class} Sending API request #{env[:method]} #{env[:url].to_s} #{env[:request_headers]}" } http_response = connection.app.call(env) @@ -285,6 +286,7 @@ module Google raise ArgumentError, "Can not specify body & body object for simple uploads" end self.headers['Content-Type'] ||= self.media.content_type + self.headers['Content-Length'] ||= self.media.length.to_s self.body = self.media when "multipart" unless options[:body_object]