如何在c#中的GraphQL客户端端点的请求正文中发送oauth_token和client_id

Ary*_*yan 4 c# graphql graphql-dotnet

大家好,我想要在 GraphQL 客户端的请求正文中传递oauth_token和。client_id那么我该如何传递它们,因为 GraphQLRequest 只有三个字段(即 Query 、 Variables 和 OperationName )。请建议。

using GraphQL.Client;

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

var  graphQLResponse = await graphQLClient.PostAsync(heroRequest);
Run Code Online (Sandbox Code Playgroud)

Tia*_*imo 5

您可以使用GraphQLClient中的DefaultRequestHeaders将授权(或任何其他参数)添加到标头。

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);
Run Code Online (Sandbox Code Playgroud)

在这里您可以找到有关 HttpClient 中的 DefaultRequestHeaders 的更多详细信息: 设置 HttpClient 的授权标头

此外,在 graphql-dotnet git 上创建了一个相关问题。
https://github.com/graphql-dotnet/graphql-client/issues/32