Yelp Fusion API v3 возвращает 401 несанкционированный с ошибкой TOKEN_MISSING при вызове из c # - PullRequest
0 голосов
/ 16 сентября 2018

Я создал свое приложение в Yelp, получил свой ключ API, и все хорошо работает от Postman при выполнении бизнес-поиска.

Однако при тестировании с c # я получаю 401 несанкционированную ошибку сОшибка TOKEN_MISSING, в которой говорится "" {\ "error \": {\ "code \": \ "TOKEN_MISSING \", \ "description \": \ "Для использования этой конечной точки должен быть указан токен доступа. \"}} "".

Я правильно предоставляю свой ключ 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);

Пример использования 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);

Я изучил запросы в Fiddler, и оба посылают те же заголовки, что и рабочий поиск Почтальона, но оба возвращают 401 несанкционированную ошибку, в то время как Почтальон возвращает результаты поиска.Есть идеи?

Редактировать:

Что ж, это смущает, очевидно, моя проблема была в том, что я пытался получить доступ к API Yelp через http вместо https.Как только я перешел на https, все заработало как положено.

1 Ответ

0 голосов
/ 17 сентября 2018

Изменена конечная точка для использования https вместо http, теперь работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...