Skip to content

Setting cookies in AIOHttpTransport doesn't work #197

Closed
@snowPu

Description

@snowPu

I'm trying to set cookies in the transport to execute a query.
This works when I use RequestsHTTPTransport but not when I use AIOHTTPTransport.
The cookie needs to be present in the POST request. In case it's not present, the client gets redirected to the login page.
So if I'm using requests library directly, it should look like this:

cookies = authenticate(url, username, password)

json = { 'query' : '{ queryName { id }}' }

r = requests.post(url, json=json, cookies=cookies)

This works:

from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
from gql.transport.requests import RequestsHTTPTransport

cookies=authenticate(url, username, password).get_dict()
transport = RequestsHTTPTransport(url=url, timeout=900, cookies=cookies)

with Client(
    transport=transport,
#     fetch_schema_from_transport=True,
    execute_timeout=1200,
) as client:
    query = gql('''
        query {
            queryName { id } 
        }
    ''')
    result = client.execute(query)
    print(result)

This redirects me to the login page.

from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport

cookies=authenticate(url, username, password).get_dict()
transport = AIOHTTPTransport(url=url, timeout=900, cookies=cookies)

async with Client(
    transport=transport,
#     fetch_schema_from_transport=True,
    execute_timeout=1200,
) as client:
    query = gql('''
        query {
            queryName { id } 
        }
    ''')
    result = await client.execute(query)
    print(result)

I need to send the same cookies for uploading a file via graphQL which is why I need to use AIOHttpTransport. How do I send cookies the same way as in requests?

Note: Tried sending via extra_args but that didn't work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: documentationAn issue or pull request for improving or updating the documentationtype: question or discussionIssue discussing or asking a question about gql

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions