anchor.diff:    ())
   
   (defmethod request-url ((request api-request))
  -  (make-instance 'puri:uri :scheme "https"
  +  (make-instance 'puri:uri :scheme :https
                              :host +api-server+
  -                           :path #?"#{+dropbox-api-version+}/#{request-path}"))
  +                           :path #?"/${+api-version+}/${(request-path request)}"))
   
   (defclass content-request (request)
     ())
   
   (defmethod request-url ((request content-request))
  -  (make-instance 'puri:uri :scheme "https"
  +  (make-instance 'puri:uri :scheme :https
                              :host +api-content-server+
  -                           :path #?"#{+api-version+}/#{request-path}"))
  +                           :path #?"/${+api-version+}/${(request-path request)}"))
   
  -(defun add-header (request name value)
  -  (setf (request-headers request) (acons name value (request-headers request))))
   
  -(defclass response ()
  -  ((status-code :initarg :status-code :reader response-status-code)
  -   (headers :initarg :headers :reader response-headers)
  -   (body :initarg :body :reader response-body)))
  +(defun header-value (response name)
  +  (drakma:header-value name (response-headers response)))
   
  -(defun response-header (response name)
  -  (drakma:header-value name (response-headers response)))
  +(defun (setf header-value) (value request name)
  +  ;;check if header with name already presented, if true change its value otherwise add new header
  +  (let ((header (assoc name (request-headers request) :test #'string-equal)))
  +    (if header
  +        (rplacd header value)
  +        (setf (request-headers request) (acons name value (request-headers request))))))
   
   (defun http-request-with-ssl (request)
     ;; do not replace cl+ssl global state, rebind
  
positive.code: (cl-interpol:enable-interpol-syntax)
  
  (defclass request ()
    ((headers :initarg :headers :accessor request-headers)
     (body :initarg :body :accessor request-body)
     (method :initarg :method :accessor request-method)
     (path :initarg :uri :accessor request-path)
     (params :initarg :query :accessor request-params)))
  
  (defgeneric request-url (request))
  
  
negative.code:       response
        (trivial-utf-8:utf-8-bytes-to-string response)))
  
  (defun http-request% (request)
    (multiple-value-bind (response status-code headers)
        (http-request-with-ssl request)
      (make-instance 'response :body response :headers headers :status-code status-code)))
  
  
  