Проблемы авторизации с Yelp-Fusion-API в Android Studio, токен работает в почтальоне, но не в запросе get - PullRequest
0 голосов
/ 07 апреля 2019

Я создаю приложение в Android Studio, которое использует OkHttp для отправки вызовов GET Request в API Yelp Fusion.

Я проверил запрос в Postman с соответствующим токеном носителя аутентификации, и он работает.

Почтальон

Однако, когда я тестирую запрос на запрос в моем приложении для Android, это не так.

Для моего тестового примера я попыталсяиспользуйте http://httpbin.org, чтобы увидеть, проходили ли мои заголовки.И это было.


Request request_test = new Request.Builder()
                .url("http://httpbin.org")
                .get()
                .addHeader("Authorization", "Bearer TOKEN")
                .addHeader("cache-control", "no-cache")
                .build();

Для моего результата я смог получить:

"headers": {
        "Accept-Encoding": "gzip", 
        "Authorization": "Bearer TOKEN", 
        "Cache-Control": "no-cache", 
        "Host": "httpbin.org", 
        "User-Agent": "okhttp/3.12.0"
      }

Вот код, который у меня есть:

public class OkHttpHandler extends AsyncTask<String,Void,String> {
OkHttpClient client = new OkHttpClient();

@Override
    protected String doInBackground(String... params){

    Request request = new Request.Builder()
                .url("http://api.yelp.com/v3/businesses/search?term=restaurants&latitude=37.72856&longitude=-122.47688&radius=8046")
                .get()
                .addHeader("cache-control", "no-cache")
                .addHeader("Authorization","Bearer TOKEN")
                .build();

    Log.d(TAG, request.toString());

    try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        }
        catch (Exception e){
        }

        return null;
        }

Ожидаемый результат:

Yelp Response.

Фактический результат:

Выходной ответ: {"error": {"code": "VALIDATION_ERROR", "description":> "Authorization"является обязательным параметром. "," field ":" Authorization "," instance ":> null}}

Редактировать: я понял свою ошибку.Я использовал схему HTTP вместо https.

...