Как отправить oauth_token и client_id в теле запроса конечной точки клиента GraphQL в С#

Привет, друзья, я хочу передать oauth_token и client_id в теле запроса клиента GraphQL. Итак, как я могу их передать, потому что GraphQLRequest имеет только три поля (т.е. Query, Variables и OperationName). Пожалуйста, предложите.

using GraphQL.Client;

var heroRequest = new GraphQLRequest{ Query = Query };
var graphQLClient = new GraphQLClient("URL");

var  graphQLResponse = await graphQLClient.PostAsync(heroRequest);

person Aryan    schedule 29.06.2018    source источник


Ответы (1)


Вы можете добавить авторизацию (или любой другой параметр) в заголовок, используя DefaultRequestHeaders из GraphQLClient.

var graphClient = new GraphQLClient("https://api.github.com/graphql");
graphClient.DefaultRequestHeaders.Add("Authorization", $"bearer {ApiKey}");

var request = new GraphQLRequest
{
    Query = @"query { viewer { login } }"
};

var test = await graphClient.PostAsync(request);

Здесь вы можете найти более подробную информацию о DefaultRequestHeaders из HttpClient: Настройка заголовка авторизации HttpClient

Кроме того, в git graphql-dotnet возникла связанная проблема.
https://github.com/graphql-dotnet/graphql-client/issues/32

person Tiago Máximo    schedule 15.10.2018
comment
Если ваш GraphQLClient — это клиент с github.com/graphql-dotnet/graphql-client. , то класс GraphQLClient не имеет определения для DefaultRequestHeaders. - person Daming Fu; 10.03.2021