code: def _send(self, send_method, service_name, data=None, **kwargs):
          
          valid_response = False
          raw = kwargs.pop("raw", False)
  
          while not valid_response:
              headers = dict(Authorization=self.token)
              uri = self._prepare_uri(service_name, **kwargs)
              logger.debug(' '.join(map(str, (headers, uri, data))))
  
              response = send_method(uri, headers=headers, json=data)
              content_type = response.headers["Content-Type"].split(";")[0]
  
              if response.content and content_type == "application/json":
                  response_data = response.json()
                  if "response" in response_data:
                      response_data = response_data["response"]
              elif response.content:
                  return response.content
              else:
                  return None
  
              try:
                  self.check_errors(response, response_data)
              except RateExceeded:
                  self._handle_rate_exceeded(response)
              except NoAuth:
                  self.update_token()
              else:
                  valid_response = True
          if raw:
              return response.json()
          return response_data
docs: Send a request to the AppNexus API (used for internal routing)
  
          :param send_method: The method sending the request (usualy requests.*)
          :type send_method: function
          :param service_name: The target service
          :param data: The payload of the request (optionnal)
          :type data: anything JSON-serializable