コード例 #1
0
    def transition(self, url, trans=None, parameters=None):
        method = _http_method_map[trans]

        if parameters and method == 'GET':
            opts = {
                'params': parameters,
                'headers': {
                    'accept': ACCEPT_HEADER
                }
            }
        elif parameters:
            opts = {
                'data': json.dumps(parameters),
                'headers': {
                    'content-type': 'application/json',
                    'accept': ACCEPT_HEADER
                }
            }
        else:
            opts = {
                'headers': {
                    'accept': ACCEPT_HEADER
                }
            }

        response = requests.request(method, url, **opts)
        if not response.content:
            return None

        content_type = response.headers.get('content-type')
        codec = negotiate_decoder(content_type)
        return codec.load(response.content, base_url=url)
コード例 #2
0
ファイル: http.py プロジェクト: j4mie/python-client
def _decode_result(response, decoders=None):
    """
    Given an HTTP response, return the decoded Core API document.
    """
    if response.content:
        # Content returned in response. We should decode it.
        content_type = response.headers.get('content-type')
        codec = negotiate_decoder(content_type, decoders=decoders)
        result = codec.load(response.content, base_url=response.url)
    else:
        # No content returned in response.
        result = None

    # Coerce 4xx and 5xx codes into errors.
    is_error = response.status_code >= 400 and response.status_code <= 599
    if is_error and not isinstance(result, Error):
        result = _coerce_to_error(result, default_title=response.reason)

    return result
コード例 #3
0
ファイル: __init__.py プロジェクト: pombredanne/python-client
def load(bytestring, content_type=None):
    codec = negotiate_decoder(content_type)
    return codec.load(bytestring)