Ejemplo n.º 1
0
    def _GetResponse(self, handler, request_data=None, method='POST'):
        """
    Query racerd via HTTP

    racerd returns JSON with 200 OK responses. 204 No Content responses occur
    when no errors were encountered but no completions, definitions, or errors
    were found.
    """
        _logger.info('RustCompleter._GetResponse')
        handler = ToBytes(handler)
        method = ToBytes(method)
        url = urljoin(ToBytes(self._racerd_host), handler)
        parameters = self._ConvertToRacerdRequest(request_data)
        body = ToBytes(json.dumps(parameters)) if parameters else bytes()
        extra_headers = self._ExtraHeaders(method, handler, body)

        _logger.debug('Making racerd request: %s %s %s %s', method, url,
                      extra_headers, body)

        # Failing to wrap the method & url bytes objects in `native()` causes HMAC
        # failures (403 Forbidden from racerd) for unknown reasons. Similar for
        # request_hmac above.
        response = requests.request(native(method),
                                    native(url),
                                    data=body,
                                    headers=extra_headers)

        response.raise_for_status()

        if response.status_code == requests.codes.no_content:
            return None

        return response.json()
Ejemplo n.º 2
0
  def _GetResponse( self, handler, request_data = None,
                    method = 'POST' ):
    """
    Query racerd via HTTP

    racerd returns JSON with 200 OK responses. 204 No Content responses occur
    when no errors were encountered but no completions, definitions, or errors
    were found.
    """
    _logger.info( 'RustCompleter._GetResponse' )
    handler = ToBytes( handler )
    method = ToBytes( method )
    url = urljoin( ToBytes( self._racerd_host ), handler )
    parameters = self._ConvertToRacerdRequest( request_data )
    body = ToBytes( json.dumps( parameters ) ) if parameters else bytes()
    extra_headers = self._ExtraHeaders( method, handler, body )

    _logger.debug( 'Making racerd request: %s %s %s %s', method, url,
                   extra_headers, body )

    # Failing to wrap the method & url bytes objects in `native()` causes HMAC
    # failures (403 Forbidden from racerd) for unknown reasons. Similar for
    # request_hmac above.
    response = requests.request( native( method ),
                                 native( url ),
                                 data = body,
                                 headers = extra_headers )

    response.raise_for_status()

    if response.status_code == requests.codes.no_content:
      return None

    return response.json()
Ejemplo n.º 3
0
    def _GetResponse(self, handler, request_data={}, timeout=None):
        '''POST JSON requests and return JSON response.'''
        handler = ToBytes(handler)
        url = urljoin(self._http_host, handler)
        parameters = self._PrepareRequestBody(request_data)
        body = ToBytes(json.dumps(parameters)) if parameters else bytes()
        extra_headers = self._ExtraHeaders(handler, body)

        self._logger.debug('Making SSVIM request: %s %s %s %s', 'POST', url,
                           extra_headers, body)

        response = requests.request(native(bytes(b'POST')),
                                    native(url),
                                    data=body,
                                    headers=extra_headers,
                                    timeout=timeout)
        response.raise_for_status()
        try:
            value = response.json()

            self._logger.debug('Got SSVIM response: %s %s %s %s', 'POST', url,
                               value, value.keys())
            return value
        except:
            value = {}
            self._logger.debug('Got SSVIM response: %s %s %s %s', 'POST', url,
                               value, value.keys())
            return value
Ejemplo n.º 4
0
  def _GetResponse( self, handler, request_data = {} ):
    """POST JSON data to JediHTTP server and return JSON response."""
    handler = ToBytes( handler )
    url = urljoin( self._jedihttp_host, handler )
    parameters = self._TranslateRequestForJediHTTP( request_data )
    body = ToBytes( json.dumps( parameters ) ) if parameters else bytes()
    extra_headers = self._ExtraHeaders( handler, body )

    self._logger.debug( 'Making JediHTTP request: %s %s %s %s', 'POST', url,
                        extra_headers, body )

    response = requests.request( native( bytes( b'POST' ) ),
                                 native( url ),
                                 data = body,
                                 headers = extra_headers )

    response.raise_for_status()
    return response.json()
Ejemplo n.º 5
0
 def _GetResponse( self, handler, parameters = {}, timeout = None ):
   """ Handle communication with server """
   target = urljoin( self._ServerLocation(), handler )
   response = requests.post( target, data = parameters, timeout = timeout )
   return response.json()
Ejemplo n.º 6
0
def FilePathToUri( file_name ):
  return urljoin( 'file:', pathname2url( file_name ) )
Ejemplo n.º 7
0
def _BuildUri(handler):
    return native(ToBytes(urljoin(BaseRequest.server_location, handler)))
Ejemplo n.º 8
0
 def _BuildUri( self, handler ):
   return native( ToBytes( urljoin( self._location, handler ) ) )
def FilePathToUri( file_name ):
  return urljoin( 'file:', pathname2url( file_name ) )
Ejemplo n.º 10
0
def _BuildUri( handler ):
  return native( ToBytes( urljoin( BaseRequest.server_location, handler ) ) )