You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Core 6中传递GraphQL的content-language:ar请求头

解决ASP.NET Core中GraphQL请求添加Content-Language头的问题

你可以通过两种方式添加Content-Language: ar请求头,根据需求选择:

方法一:给GraphQL客户端添加全局默认请求头

如果所有GraphQL请求都需要携带这个头,创建GraphQLHttpClient实例后,直接操作其内部的HttpClient添加默认请求头:

var client = new GraphQLHttpClient(options, new NewtonsoftJsonSerializer());
// 添加全局默认请求头
client.HttpClient.DefaultRequestHeaders.Add("Content-Language", "ar");

或者在配置GraphQLHttpClientOptions时,通过ConfigureHttpClient提前设置:

var options = new GraphQLHttpClientOptions
{
    EndPoint = new Uri("https://EndPoint/graphql"),
    ConfigureHttpClient = (httpClient) =>
    {
        httpClient.DefaultRequestHeaders.Add("Content-Language", "ar");
    }
};

方法二:给单个GraphQL请求添加请求头

如果只有这个Tracking接口的请求需要携带该头,直接在GraphQLRequest对象中设置Headers属性:

var request = new GraphQLRequest
{
    Query = query,
    // 给当前请求单独添加请求头
    Headers = new Dictionary<string, string>
    {
        { "Content-Language", "ar" }
    }
};

额外优化建议

你当前直接将code变量拼接到GraphQL查询字符串中,存在注入风险。建议改用GraphQL变量传递参数,示例如下:

// 使用变量定义查询
var query = @"
query($code: String!) {
    shipment(code: $code) {
        id
        code
        customerDue
        createdAt
        collected
        paidToCustomer
        paidToDeliveryAgent
    }
}";

var request = new GraphQLRequest
{
    Query = query,
    Variables = new { code = code }, // 传递变量
    Headers = new Dictionary<string, string>
    {
        { "Content-Language", "ar" }
    }
};

内容的提问来源于stack exchange,提问作者عالم ديم

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:17:05