Как отправить запрос GET с помощью JSON в заголовке в Retrofit - PullRequest
0 голосов
/ 05 октября 2018

Я хочу создать приложение, которое будет определять местонахождение скутеров.Я использую Bird (Scooter) API.Я получил токен аутентификации, но когда я хочу отправить запрос методом GET с заголовками, он возвращает мне код ответа 401, но токен аутентификации не равен нулю.Пожалуйста, помогите мне. Api Documentation

Мой интерфейс запроса

public interface ApiCallsInterface {

@Headers({
        "Device-id:43ba174c-11f4-4918-9fcc-6d785cfc256e"
        ,"Platform:android","Content-type:application/json"
})
@POST("/user/login")
Call<AuthResponseClass> getAuthToken(@Body Map<String, String> params);

@Headers({
        "Device-id:43ba174c-11f4-4918-9fcc-6d785cfc256e",
        "App-Version:3.0.5"
})
@GET("/bird/nearby?latitude=37.77184&longitude=-122.40910&radius=1000")
Call<BirdResponse> getBirds(@Header("Authorization") String token, @Header("Location") Map<String, String> params);}

Как отправить запрос

Map<String, String> requestParams = new HashMap<>();
requestParams.put("latitude",lat);
requestParams.put("longitude",lng);
requestParams.put("altitude","500");
requestParams.put("accuracy","100");
requestParams.put("speed","-1");
requestParams.put("heading","-1");

apiCallsInterface.getBirds(AUTH_TOKEN,requestParams).enqueue(new Callback<BirdResponse>() {
    @Override
    public void onResponse(Call<BirdResponse> call, Response<BirdResponse> response) {
        Log.d(TAG,"" + response.code());
    }

    @Override
    public void onFailure(Call<BirdResponse> call, Throwable t) {

    }
});

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

401 Запрос требует аутентификации пользователя

Неправильное добавление заголовка. Вот руководство по правильной генерации заголовка https://github.com/ubahnverleih/WoBike/blob/master/Bird.md

0 голосов
/ 09 октября 2018

Обязательно добавьте «Bird» перед токеном, как в документации API.

...