Joman Manu Ответов: 0

Как получить метку сообщения 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=") работает нормально, но не возвращается с этикетками

0 Ответов