Как получить метку сообщения blogspost по api в android studio?
У меня есть 4 класса, которые работают нормально, но когда я пытаюсь изменить, чтобы получить сообщение по меткам, используя этот пример, как получить сообщения в блоге по метке в blogger api, я получил ошибку, но мой ключ GOOGLE API работает нормально.
Константы.Ява
package com.manupearls.unity.ui.helpers; public class Constants { public static String BLOGGER_KEY = ""; public static String BLOGGER_ID = "2331406457493300588"; public static String LABELS = "firmware"; public static String BASE_URL = "https://www.googleapis.com/blogger/v3/blogs/"+BLOGGER_ID+"/"; }
RestAdapter.Ява
package com.manupearls.unity.data.network; import android.util.Log; import com.manupearls.unity.data.models.Manupost; import com.manupearls.unity.ui.helpers.Constants; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Call; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.http.GET; import retrofit2.http.Url; public class RestAdapter { static Retrofit retrofit; static OkHttpClient okHttpClient; public static Webservice createAPI() { OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.connectTimeout(5, TimeUnit.SECONDS); builder.writeTimeout(10, TimeUnit.SECONDS); builder.readTimeout(30, TimeUnit.SECONDS); builder.cache(null); okHttpClient = builder.build(); retrofit = new Retrofit.Builder() .baseUrl(Constants.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) .build(); return retrofit.create(Webservice.class); } public static void cancel(){ okHttpClient.dispatcher().cancelAll(); } public static Retrofit getRetrofit(){ return retrofit; } }
MockRestAdapter.java
package com.manupearls.unity.data.network; import com.manupearls.unity.ui.helpers.Constants; import retrofit2.Retrofit; import retrofit2.mock.BehaviorDelegate; import retrofit2.mock.MockRetrofit; import retrofit2.mock.NetworkBehavior; public class MockRestAdapter { public Webservice build(){ // Create a very simple Retrofit adapter which points the GitHub API. Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constants.BASE_URL) .build(); // Create a MockRetrofit object with a NetworkBehavior which manages the fake behavior of calls. NetworkBehavior behavior = NetworkBehavior.create(); MockRetrofit mockRetrofit = new MockRetrofit.Builder(retrofit) .networkBehavior(behavior) .build(); BehaviorDelegate<Webservice> delegate = mockRetrofit.create(Webservice.class); return new MockWebservice(delegate); } }
Webservice.java
package com.manupearls.unity.data.network; import com.manupearls.unity.data.models.Manupost; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Headers; import retrofit2.http.Query; public interface Webservice { @Headers("Cache-Control: no-cache") @GET("posts") Call<Manupost> getPosts( @Query("key") String key, @Query("pageToken") String token ); }
Пострепозиция.Ява
package com.manupearls.unity.data.repository; import android.arch.lifecycle.LiveData; import android.arch.lifecycle.MutableLiveData; import android.util.Log; import com.manupearls.unity.data.models.Manupost; import com.manupearls.unity.data.network.Webservice; import com.manupearls.unity.ui.helpers.Constants; import java.io.IOException; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class PostRepository { private final Webservice webservice; public PostRepository(Webservice webservice) { this.webservice = webservice; } public LiveData<Manupost> getPosts( String token) { final MutableLiveData<Manupost> data = new MutableLiveData<>(); webservice.getPosts(Constants.BLOGGER_KEY,token).enqueue(new Callback<Manupost>() { @Override public void onResponse(Call<Manupost> call, Response<Manupost> response) { if (response.isSuccessful()){ data.setValue(response.body()); }else{ try { Log.d("errors networking", response.errorBody().string()); } catch (IOException e) { e.printStackTrace(); } } } @Override public void onFailure(Call<Manupost> call, Throwable t) { Log.d("error networking", t.getMessage()); } }); return data; } }
Что я уже пробовал:
Когда я изменюсь Webservice.java код @GET("сообщения") для @GET(" https://www.googleapis.com/blogger/v3/blogs/2331406457493300588/posts-что?labels=firmware&key=") работает нормально, но не возвращается с этикетками