class_docstr: Data provider communicating with API server.
class_docstr_tok: ["Data","provider","communicating","with","API","server","."]
code: def get_experiment(self, experiment, getinfo="True"):
      if isinstance(experiment, str):
          key = experiment
      else:
          key = experiment.key
  
      headers = self._get_headers()
      try:
          request = requests.post(
              self.url + "/api/get_experiment",
              headers=headers,
              data=json.dumps({"key": key}),
          )
  
          self._raise_detailed_error(request)
          data = request.json()["experiment"]
          return experiment_from_dict(data)
      except BaseException as e:
          check_for_kb_interrupt()
          self.logger.info("error getting experiment {}".format(key))
          self.logger.info(e)
          return None
  
imports: import requests
  import json
  import time
  import re
  from studio.util import logs
  from studio.auth import get_auth
  from studio.credentials.credentials import Credentials
  from studio.storage.storage_setup import get_storage_verbose_level
  from studio.storage.http_storage_handler import HTTPStorageHandler
  from studio.experiments.experiment import experiment_from_dict
  from studio.util.util import retry, check_for_kb_interrupt
label_desc: Use image node_id 5 for calling the HTTPProvider obj's underlying member method code with example usage: obj.get_experiment(experiment, getinfo) and returns: experiment_from_dict, None