C# 当从c调用时,Yelp Fusion API v3返回401 Unauthorized with TOKEN_MISSING错误#

C# 当从c调用时,Yelp Fusion API v3返回401 Unauthorized with TOKEN_MISSING错误#,c#,api,restsharp,yelp,unauthorized,C#,Api,Restsharp,Yelp,Unauthorized,我已经在Yelp中创建了我的应用程序,获得了api密钥,在执行业务搜索时,Postman可以很好地运行我的应用程序 但是,当从c#进行测试时,我收到一个401未经授权的错误,带有一个标记(u缺失错误,表示“{\”错误“:{\“代码”:“标记(u缺失)”,“描述”:“必须提供一个访问标记才能使用此端点。\“}” 不过我提供的api密钥是正确的,Yelp文档说这就是我所需要的,所以我不确定问题出在哪里。以下是两个不起作用的单独c#代码示例(出于安全考虑,我已将实际的api密钥替换为): 使用WebR

我已经在Yelp中创建了我的应用程序,获得了api密钥,在执行业务搜索时,Postman可以很好地运行我的应用程序

但是,当从c#进行测试时,我收到一个401未经授权的错误,带有一个标记(u缺失错误,表示“{\”错误“:{\“代码”:“标记(u缺失)”,“描述”:“必须提供一个访问标记才能使用此端点。\“}”

不过我提供的api密钥是正确的,Yelp文档说这就是我所需要的,所以我不确定问题出在哪里。以下是两个不起作用的单独c#代码示例(出于安全考虑,我已将实际的api密钥替换为):

使用WebRequest的示例:

var webRequest = WebRequest.Create("http://api.yelp.com/v3/businesses/search?term=Clayton+Bicycle+Center&location=5411+Clayton+Rd%2c+Clayton%2c+CA+94517%2c+US");
webRequest.Method = "GET";
webRequest.Headers.Add("Cache-Control", "no-cache");
webRequest.Headers.Add("Authorization", "Bearer <my_api_key>");
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
var stream = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
var content = stream.ReadToEnd();
Console.Write(content);
var webRequest=webRequest.Create(“http://api.yelp.com/v3/businesses/search?term=Clayton+自行车+中心和位置=5411+Clayton+Rd%2c+Clayton%2c+CA+94517%2c+US”);
webRequest.Method=“GET”;
添加(“缓存控制”、“无缓存”);
webRequest.Headers.Add(“授权”、“持有人”);
HttpWebResponse webResponse=(HttpWebResponse)webRequest.GetResponse();
var stream=newstreamreader(webResponse.GetResponseStream(),Encoding.UTF8);
var content=stream.ReadToEnd();
控制台。写入(内容);
使用RestSharp的示例:

var client = new RestClient("http://api.yelp.com/v3/businesses/search?term=Clayton+Bicycle+Center&location=5411+Clayton+Rd%2c+Clayton%2c+CA+94517%2c+US");
var request = new RestRequest(Method.GET);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Authorization", "Bearer <my_api_key>");
var response = client.Execute(request);
Console.Write(response.Content);
var client=new RestClient(“http://api.yelp.com/v3/businesses/search?term=Clayton+自行车+中心和位置=5411+Clayton+Rd%2c+Clayton%2c+CA+94517%2c+US”);
var请求=新的重新请求(Method.GET);
AddHeader(“缓存控制”、“无缓存”);
请求。添加标题(“授权”、“持有人”);
var response=client.Execute(请求);
Console.Write(response.Content);
我在Fiddler中检查了请求,两个请求都发送了与正在工作的Postman搜索相同的头,但都返回401个未经授权的错误,而Postman返回搜索结果。有什么想法吗

编辑:


这很尴尬,显然我的问题是我试图通过http而不是https访问YelpAPI。一旦我改为https,一切正常。

将端点改为使用https而不是http,现在可以工作了