【发布时间】:2015-06-28 21:57:03
【问题描述】:
我正在尝试调用需要 Accept 和 Authorization 标头的 Base API。我在控制台应用程序中有以下代码,但总是收到 400 错误。我已经在提琴手中截获了电话,并且标头不存在。如果我在 fiddler 中手动创建它,则该调用有效。我是否遗漏了请求中的某些内容?
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://api.getbase.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
HttpResponseMessage response = await client.GetAsync("v2/users/self");
if (response.IsSuccessStatusCode)
{
}
}
这里是文档https://developers.getbase.com/docs/rest/articles/first_call
【问题讨论】:
-
显示来自 fiddler 的原始请求数据
-
{"errors":[{"error":{"code":"invalid_header","message":"invalid request header","details":"标头 'User-Agent'格式错误、缺失或具有无效值。"},"meta":{"type":"error","links":{"more_info":"developers.getbase.com/docs/rest/articles/errors"}}}],"meta": {"type":"errors","http_status":"400 Bad Request","logref":"ae7ha-o2kd1-3irpe-q235g","links":{"more_info":"developers.getbase.com/docs/rest/articles/errors"}}}
标签: c# .net rest http-headers dotnet-httpclient