C# 从.Net调用Eventbrite API将导致401
我正在尝试从Eventbrite API检索订单。我有一个有效的OAuth令牌和订单号。我已经用postman验证了这一点,它成功地返回了正确的JSON 但是,当我使用以下c代码拨打电话时,我会收到未经授权的401:C# 从.Net调用Eventbrite API将导致401,c#,httpwebrequest,eventbrite,C#,Httpwebrequest,Eventbrite,我正在尝试从Eventbrite API检索订单。我有一个有效的OAuth令牌和订单号。我已经用postman验证了这一点,它成功地返回了正确的JSON 但是,当我使用以下c代码拨打电话时,我会收到未经授权的401: var client = new HttpClient(); var req = new HttpRequestMessage(HttpMethod.Get, "https://www.eventbriteapi.com/v3/orders/{orderNo}"); req.Hea
var client = new HttpClient();
var req = new HttpRequestMessage(HttpMethod.Get, "https://www.eventbriteapi.com/v3/orders/{orderNo}");
req.Headers.Add("Authorization", "Bearer {authToken}");
var response = await client.SendAsync(req);
我已尝试将标题替换为:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("{authToken}");
我也尝试过:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.eventbriteapi.com/v3/orders/{orderNo}");
request.Headers.Add("Authorization", "Bearer {authToken}");
request.Accept = "application/json";
using(WebResponse response = request.GetResponse())
{
using(Stream dataStream = response.GetResponseStream())
{
using(StreamReader reader = new StreamReader(dataStream))
{
string responseFromServer = reader.ReadToEnd();
}
}
}
所有这些都得到了401的回复。
我知道authtoken和eventid是正确的,所以我的代码一定有问题
我对身份验证令牌做了什么错误吗?您尝试过吗?EventBrite API上的令牌={authToken}选项 这至少可以确认头的发送方式是否有问题
您在EventBrite API上尝试过?token={authToken}选项吗 这至少可以确认头的发送方式是否有问题
您在URL中省略了尾随的“/”,这导致随后从eventbriteapi.com/v3/orders/{orderNo}重定向到eventbriteapi.com/v3/orders/{orderNo}/。重定向中删除了授权标头。您在URL中省略了结尾的“/”,这导致随后从eventbriteapi.com/v3/orders/{orderNo}重定向到eventbriteapi.com/v3/orders/{orderNo}/。在重定向中删除了授权标头。有趣的是,将authToken放入querystring中是可行的。正如你所说,这证实了我创建标题的方式有问题。header方法在postman中工作,所以一定是因为我没有在中正确创建它。我可能会尝试启动fiddler,看看请求中实际发送了什么。我被.net在封面下添加的Expect头所吸引,所以可能有类似的东西。有趣的是,将authToken放在querystring中是有效的。正如你所说,这证实了我创建标题的方式有问题。header方法在postman中工作,所以一定是因为我没有在中正确创建它。我可能会尝试启动fiddler,看看请求中实际发送了什么。我被.net在封面下添加的Expect标题弄得不知所措,所以可能有类似的东西。