docs: def parse_fields_http(self, response, extra_org_map=None):
          """
          The function for parsing ASN fields from a http response.
  
          Args:
              response (:obj:`str`): The response from the ASN http server.
              extra_org_map (:obj:`dict`): Dictionary mapping org handles to
                  RIRs. This is for limited cases where ARIN REST (ASN fallback
                  HTTP lookup) does not show an RIR as the org handle e.g., DNIC
                  (which is now the built in ORG_MAP) e.g., {'DNIC': 'arin'}.
                  Valid RIR values are (note the case-sensitive - this is meant
                  to match the REST result): 'ARIN', 'RIPE', 'apnic', 'lacnic',
                  'afrinic'. Defaults to None.
  
          Returns:
              dict: The ASN lookup results
  
              ::
  
                  {
                      'asn' (None) - Cannot retrieve with this method.
                      'asn_date' (None) - Cannot retrieve with this method.
                      'asn_registry' (str) - The assigned ASN registry
                      'asn_cidr' (None) - Cannot retrieve with this method.
                      'asn_country_code' (None) - Cannot retrieve with this
                          method.
                      'asn_description' (None) - Cannot retrieve with this
                          method.
                  }
  
          Raises:
              ASNRegistryError: The ASN registry is not known.
              ASNParseError: ASN parsing failed.
          """
  
          # Set the org_map. Map the orgRef handle to an RIR.
          org_map = self.org_map.copy()
          try:
  
              org_map.update(extra_org_map)
  
          except (TypeError, ValueError, IndexError, KeyError):
  
              pass
  
          try:
  
              asn_data = {
                  'asn_registry': None,
                  'asn': None,
                  'asn_cidr': None,
                  'asn_country_code': None,
                  'asn_date': None,
                  'asn_description': None
              }
  
              try:
  
                  net_list = response['nets']['net']
  
                  if not isinstance(net_list, list):
                      net_list = [net_list]
  
              except (KeyError, TypeError):
  
                  log.debug('No networks found')
                  net_list = []
  
              for n in reversed(net_list):
  
                  try:
  
                      asn_data['asn_registry'] = (
                          org_map[n['orgRef']['@handle'].upper()]
                      )
  
                  except KeyError as e:
  
                      log.debug('Could not parse ASN registry via HTTP: '
                                '{0}'.format(str(e)))
                      continue
  
                  break
  
              if not asn_data['asn_registry']:
  
                  log.debug('Could not parse ASN registry via HTTP')
                  raise ASNRegistryError('ASN registry lookup failed.')
  
          except ASNRegistryError:
  
              raise
  
          except Exception as e:  # pragma: no cover
  
              raise ASNParseError('Parsing failed for "{0}" with exception: {1}.'
                                  ''.format(response, e)[:100])
  
          return asn_data