Retrofit правильно как авторизоваться в header?

219
20 марта 2018, 01:16

есть сайт data.gov.spb.ru/developers нужно получить список данных оттуда как с помощью retrofit организовать правильную авторизацию? на сайте сказано вот это: Токен передаётся в HTTP Header в формате “Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b” То, что получилось у меня:

@GET("/api/v1/datasets")
    @Headers("Authorization: Token e0fdb92b7fcbbf9241a9a8f22b592b3d83544ffa")
    Call<List<PostModel>> getData(@Query("id")int count, @Query("name") String resourceName);

при запуске приложение вылетает

MainActivity

package com.example.mikhailzagrebaev.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainActivity extends AppCompatActivity {
    RecyclerView recyclerView;
    List<PostModel> posts;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        posts = new ArrayList<>();
        recyclerView = (RecyclerView) findViewById(R.id.posts_recycle_view);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        PostsAdapter adapter = new PostsAdapter(posts);
        recyclerView.setAdapter(adapter);
        App.getApi().getData( 5,"name").enqueue(new Callback<List<PostModel>>() {
            @Override
            public void onResponse(Call<List<PostModel>> call, Response<List<PostModel>> response) {
                posts.addAll(response.body());
                recyclerView.getAdapter().notifyDataSetChanged();
            }
            @Override
            public void onFailure(Call<List<PostModel>> call, Throwable t) {
                Toast.makeText(MainActivity.this, "An error occurred during networking", Toast.LENGTH_SHORT).show();
            }
        });
    }

log

        03-18 22:41:50.248 19559-19559/com.example.mikhailzagrebaev.myapplication E/AndroidRuntime: 
    FATAL EXCEPTION: 
    main Process: com.example.mikhailzagrebaev.myapplication, 
    PID: 19559 java.lang.NullPointerException:
     Attempt to invoke virtual method 'int java.lang.String.length()'
 on a null object reference at java.io.StringReader.(StringReader.java:50) 
    at android.text.HtmlToSpannedConverter.convert(Html.java:765)
    at android.text.Html.fromHtml(Html.java:245) 
    at android.text.Html.fromHtml(Html.java:199)
READ ALSO
Как динамически обновлять текст в Label, при его изменении в цикле (Java)?

Как динамически обновлять текст в Label, при его изменении в цикле (Java)?

Есть два класса: Second и ThirdОба отображают окно JFrame

192
циклический switch java

циклический switch java

Мне нужно сделать консольное меню, использовал обычный switch, но не знаю как сделать чтобы при выборе кейса, он выполнялся и после этого в консоли...

214
Итератор для бинарного дерева

Итератор для бинарного дерева

Всем приветЗадача реализовать бинарное дерево поиска

194
Работа инкремента в Java

Работа инкремента в Java

Возник вопрос по поводу работы Java инкремента, я не могу понять логику как он считает его в этих выражения:

152