从.Net C#控制台应用程序客户端使用和配置Graphql请求

从.Net C#控制台应用程序客户端使用和配置Graphql请求,c#,.net,graphql,C#,.net,Graphql,我正在尝试从C#client使用GraphQLAPI。为此,我使用了GraphQl.netnuget包。问题是,我不知道如何设置Api Url,因为我没有HttpRequest对象,这也导致了其他问题,即我无法设置authentication头并随请求发送令牌。我的代码如下所示: public void Post(TestGraphQl.GraphQLQuery query) { var inputs = query.Variables.ToInputs(); var queryTo

我正在尝试从C#client使用GraphQLAPI。为此,我使用了GraphQl.netnuget包。问题是,我不知道如何设置Api Url,因为我没有
HttpRequest
对象,这也导致了其他问题,即我无法设置authentication头并随请求发送令牌。我的代码如下所示:

public void Post(TestGraphQl.GraphQLQuery query)
{
   var inputs = query.Variables.ToInputs();
   var queryToExecute = query.Query;

   var result = _executer.ExecuteAsync(_ =>
   {
     _.Schema = _schema;
     _.Query = queryToExecute;
     _.OperationName = query.OperationName;
     _.Inputs = inputs;

     //_.ComplexityConfiguration = new ComplexityConfiguration { MaxDepth = 15 };
     _.FieldMiddleware.Use<InstrumentFieldsMiddleware>();

    }).Result;

    var httpResult = result.Errors?.Count > 0
                ? HttpStatusCode.BadRequest
                : HttpStatusCode.OK;

    var json = _writer.Write(result);
}

我对这个话题完全陌生,非常感谢您的帮助。非常感谢

不确定您是否还在寻找它。可以始终使用GraphQl.Client nuget来实现这一点。要使用的示例代码是

var query=@“查询($id:String){device(id:$id){displayName,id}}”;
var request=new GraphQLRequest(){
Query=Query,
变量=新{id=123}
};
var graphQLClient=新的graphQLClient(“http://localhost:8080/api/GraphQL");
graphQLClient.DefaultRequestHeaders.Add(“授权”、“您的令牌”);
var graphQLResponse=等待graphQLClient.PostAsync(请求);

Console.WriteLine(graphQLResponse.Data)这对我来说是可行的。您将需要GraphQL.Client包

var client = new GraphQLHttpClient({Api Url}, new NewtonsoftJsonSerializer());

var request = new GraphQLRequest
{
    Query = {query}
};

var response = await client.SendQueryAsync<{Class for deserialization}>(request);
var-client=new-GraphQLHttpClient({Api-Url},new-NewtonsoftJsonSerializer());
var请求=新的GraphQLRequest
{
Query={Query}
};
var response=wait client.SendQueryAsync(请求);

在使用GraphQLHttpClient时,如何处理响应中的节流参数?查询真的应该是字符串吗?任何基于某种模式的库都可以这样做吗?在我的示例中,Graphql.Net客户端就是我使用的。特别是对于查询,它实际上是一个POCO类,应该具有graphql查询的这些基本构建块。例如,公共类GraphQLQueryDTO{public string OperationName{get;set;}公共字符串名称查询{get;set;}公共字符串查询{get;set;}公共字符串变量{get;set;}请尝试此链接以获取完整的示例
var client = new GraphQLHttpClient({Api Url}, new NewtonsoftJsonSerializer());

var request = new GraphQLRequest
{
    Query = {query}
};

var response = await client.SendQueryAsync<{Class for deserialization}>(request);