def _handle_api_call(self, url):
response = requests.get(url, proxies=self.proxy)<EOL>if '<STR_LIT>' in self.output_format.lower() or '<STR_LIT>' inself.output_format.lower():<EOL><INDENT>json_response = response.json()<EOL>if "<STR_LIT>" in json_response:<EOL><INDENT>raise ValueError(json_response["<STR_LIT>"])<EOL><DEDENT>elif "<STR_LIT>" in json_response and self.treat_info_as_error:<EOL><INDENT>raise ValueError(json_response["<STR_LIT>"])<EOL><DEDENT>elif "<STR_LIT>" in json_response and self.treat_info_as_error:<EOL><INDENT>raise ValueError(json_response["<STR_LIT>"])<EOL><DEDENT>return json_response<EOL><DEDENT>else:<EOL><INDENT>csv_response = csv.reader(response.text.splitlines())<EOL>if not csv_response:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>')<EOL><DEDENT>return csv_response<EOL><DEDENT>
Handle the return call from the  api and return a data and meta_data
        object. It raises a ValueError on problems

        Keyword Arguments:
            url:  The url of the service
            data_key:  The key for getting the data from the jso object
            meta_data_key:  The key for getting the meta data information out
            of the json object