added try for raw_response body

Even if a body is specified in the options, fetch will still try to run the second argument, causing an error if the raw response doesn't have a body method
Sorry, I probably gave you bad advice before.  This should be:

@body = options[:body] ||= @raw_response.body