当前位置: 首页 > 知识库问答 >
问题:

内容语言标头在调用Ebay API时引发错误使用的标头名称错误

裴俊雅
2023-03-14

当我使用Ebay API向CreateOrReplaceInventoryItem发出PUT请求时,会出现以下错误:

标头名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpReponseMessage一起使用,内容标头与HttpContent对象一起使用。

using (var client = new HttpClient())
{
    var baseUri = new Uri(string.Format("https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/{0}", SKU));
    client.DefaultRequestHeaders.Add("Authorization", string.Format("Bearer {0}", token));
    client.DefaultRequestHeaders.Add("Content-Language", "en-US");

    var payload = JsonConvert.SerializeObject(product);
    var content = new StringContent(payload, Encoding.UTF8, "application/json");

    var response = client.PutAsync(baseUri, content).Result;
    return response.Content.ReadAsStringAsync().Result;
}
client.DefaultRequestHeaders.Add("Content-Language", "en-US");

然后我得到一个返回的错误对象:

errors":[{"errorId":25709,"domain":"API_INVENTORY","subdomain":"Selling","category":"REQUEST","message":"Invalid value for header Content-Language."}]} 

我做错了什么?有没有另一种我不知道的设置内容语言的方法?

共有1个答案

唐沈义
2023-03-14

由于Content-language是一个内容头,您应该在HttpContent实例中分配它,而不是DefaultRequestHeaders。基于您的代码的情况如下所示:

using (var client = new HttpClient())
{
    var baseUri = new Uri(string.Format("https://api.sandbox.ebay.com/sell/inventory/v1/inventory_item/{0}", SKU));
    client.DefaultRequestHeaders.Add("Authorization", string.Format("Bearer {0}", token));

    var payload = JsonConvert.SerializeObject(product);
    var content = new StringContent(payload, Encoding.UTF8, "application/json");
    content.Headers.Add("Content-Language", "en-US");

    var response = client.PutAsync(baseUri, content).Result;
    return response.Content.ReadAsStringAsync().Result;
}
 类似资料:
  • 我有以下代码: 当我运行它时,我看到Fiddler中的Content-Type头:

  • 我构建了一个基于CXF的soap web服务,并试图按照本教程的步骤使用WS-Security添加一些安全方面。 我得到一个错误被发现处理头 以下是将安全方面添加到soap ws的重要类 ServerPasswordCallback.java ClientPasswordCallback.java authServiceFactory.java auth_fr_fr auth.manager.pa

  • 我在Maven构建期间收到此错误。 无法执行目标组织。阿帕奇。专家插件:maven shade插件:2.4.3:项目dl4j上的shade(默认)示例:创建着色jar时出错:无效的LOC头(错误签名)- 这是我的pom。xml文件。 我多次尝试删除jar文件,但似乎都不起作用。

  • 我正在尝试设置如下自定义标题 我尝试了两种方法,使用标题字典 #1 #2 我在这两种方法中得到的错误是: 标题名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpResponseMessage一起使用,内容标头与HttpContent对象一起使用。 如何在C#net core 3.1的HttpClient中设置帖子的标题?不能设置自定义标题吗?

  • 问题内容: 我不太确定为什么会收到此错误。这是一个基于express.js的简单API,能够添加和删除帖子。当我触发删除路由器时发生错误。我读到错误通常在有两个回调的情况下发生,但是,我似乎找不到任何双重回调。 这是我的posts.js路由器: 问题答案: 您需要添加“返回”,这样您就不会再次回答。

  • 问题内容: 我已经为这个错误苦苦挣扎了一段时间了。 首先,我只是以为是空格,但经过进一步研究,我认为这可能是与此类似的问题: 在此标头语句之前,查找所有可能将输出发送给用户的语句。如果找到一个或多个,请更改代码以将标头语句移到它们之前。复杂的条件语句可能会使问题复杂化,但也可能有助于解决问题。考虑一下PHP脚本顶部的条件表达式,该条件表达式尽早确定标头值并将其设置在那里。 我猜想include标头