code: def request(self, method, parameters, header):
          '''
          Grooveshark API request
          '''
          data = json.dumps({
              'parameters': parameters,
              'method': method,
              'header': header})
          request = urllib.Request(
              'https://grooveshark.com/more.php?%s' % (method),
              data=data.encode('utf-8'), headers=self._json_request_header())
          with contextlib.closing(self.urlopen(request)) as response:
              result = json.loads(response.read().decode('utf-8'))
              if 'result' in result:
                  return response.info(), result['result']
              elif 'fault' in result:
                  raise RequestError(result['fault']['message'],
                                     result['fault']['code'])
              else:
                  raise UnknownError(resultf request(self, method, parameters, header):
          '''
          Grooveshark API request
          '''
          data = json.dumps({
              'parameters': parameters,
              'method': method,
              'header': header})
          request = urllib.Request(
              'https://grooveshark.com/more.php?%s' % (method),
              data=data.encode('utf-8'), headers=self._json_request_header())
          with contextlib.closing(self.urlopen(request)) as response:
              result = json.loads(response.read().decode('utf-8'))
              if 'result' in result:
                  return response.info(), result['result']
              elif 'fault' in result:
                  raise RequestError(result['fault']['message'],
                                     result['fault']['code'])
              else:
                  raise UnknownError(result)
docs: Grooveshark API request