def _lookup_biblio_from_doi(self, id, url, cache_enabled):
        # try to get a response from the data provider        
        response = self.http_get(url, 
            cache_enabled=cache_enabled, 
            allow_redirects=True,
            headers={"Accept": "application/vnd.citationstyles.csl+json", "User-Agent": "impactstory.org"})

        if response.status_code != 200:
            self.logger.info(u"%s status_code=%i" 
                % (self.provider_name, response.status_code))            
            if response.status_code == 404: #not found
                return {}
            elif response.status_code == 403: #forbidden
                return {}
            elif ((response.status_code >= 300) and (response.status_code < 400)): #redirect
                return {}
            else:
                self._get_error(response.status_code, response)

        # extract the aliases
        try:
            biblio_dict = self._extract_biblio(response.text, id)
        except (__HOLE__, TypeError):
            biblio_dict = {}

        return biblio_dict
dataset/ETHPy150Open Impactstory/total-impact-core/totalimpact/providers/crossref.py/Crossref._lookup_biblio_from_doi