我使用GraphQL. Client Nuget包调用需要Content-Type头的Graphql API。以下是我正在做的
设置GraphQL选项。注:我已经设置了选项。媒体类型
GraphQLHttpClientOptions options = new GraphQLHttpClientOptions();
options.MediaType = "application/json";
options.EndPoint = new Uri( "https://sample.api.com/graphql");
初始化客户端和授权标头
var graphQLClient = new GraphQLHttpClient(options, new NewtonsoftJsonSerializer());
graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", "JWT <token>");
GraphQL查询
var projectsQuery = new GraphQLRequest
{
Query = @"
query {
projects {
name
}
}"
};
调用API并检索响应结果
var graphQLResponse = await graphQLClient.SendQueryAsync<ProjectResponse>(projectsQuery);
var projects = graphQLResponse.Data.Projects;
但是,我收到错误的请求,错误为“{”errors:[{”message:“必须提供查询字符串。”}]}”
我做错了什么?如何正确设置内容类型标题。我尝试添加内容类型标题,如下所示,但它不允许提供
误用的标题名。确保请求头与HttpRequestMessage一起使用,响应头与HttpResponseMessage一起使用,内容头与HttpContent对象一起使用。
graphQLClient.HttpClient.DefaultRequestHeaders.Add("content-type", "application/json");
我试图寻找解决办法,但没有找到。当我通过Postman客户端传递请求标头中的内容类型标头时,同样的请求也会工作。
有人有同样的指针吗?
如果有人仍在寻找答案,请在下面找到。
var graphQLClient = new graphQLHttpClient("https://www.example.com/graphql", new NewtonsoftJsonSerializer());
graphQLClient.HttpClient.DefaultRequestHeaders.Add("key", "value");
请注意graphQLClient中的HttpClient。HttpClient。DefaultRequestHeaders。添加(“关键”、“价值”);
以下代码使用CORS协议完美地发送请求并接收响应。我想将内容类型标头更改为“应用程序/json”而不是“应用程序/x-www-form-urlencoded”。但是,当我将内容类型替换为“应用程序/json”时,请求失败。当我在浏览器中检查请求时,我可以看到内容类型标头已被删除而不是更改。 来自以上代码的请求 当“应用程序/x-web-form-urlencoded”被替换为“应用程序/json”
我正在使用npm“同构获取”发送请求。我遇到的问题是无法设置请求头的内容类型。 我将内容类型设置为application/json,但是请求头被设置为text/plain。 当我在浏览器中检查请求时,内容类型为o: 有人能解释为什么我不能设置这个属性吗?
我正在制作一个应用程序,允许我的用户在youtube频道上上传他们的视频。此频道来自一个合作伙伴帐户,并配置为电视频道,因此,它们具有“节目”。一个视频属于一个节目,一个节目可以有很多视频。因此,在创建所有信息包时,我创建了一个资产。根据 YouTube 内容 ID API 文档 资产的类型:此值确定您可以为资产设置的元数据字段。此外,某些API函数可能仅支持特定类型的资产。例如,组合资产可能比其
我有以下代码: 当我运行它时,我看到Fiddler中的Content-Type头:
我正在实现Apiary的其他同事制作的API。io,在Windows应用商店应用程序项目中。 它们显示了我必须实现的方法的示例: 在这个和其他一些方法中,我需要有一个带有我之前获得的令牌的标头。 如何将该授权标头添加到请求中?