繁体   English   中英

我如何获取发送到robospice改造的请求字符串URL?

[英]How can I get request string URL that sent to robospice retrofit?

我搜索了但没有找到有用的信息。 尝试处理REST API客户端时,我将robospice与retofit结合使用,我想查看发送到服务的请求字符串。 是否可以从Robospice或Retrofit提取整个字符串URL?

这是我的界面:

public interface GoogleSearchInterface {
public static final String BASE_URL = "https://www.googleapis.com/customsearch";
public static final String API_KEY = "AIzaSyCCuxxVLzm2sZP-adhRNYKeSck1mMMgsAM";
public static final String CUSTOM_SEARCH_ID = "001734592082236324715:sob9rqk49yg";
public static final String SEARCH_TYPE_IMAGE = "image";
static final String FILTER = "&fields=queries(nextPage(startIndex,count),request(startIndex,count)),searchInformation(totalResults),items(title,link,displayLink,mime," +
        "image)";
static final String QUERY = "/v1?key="+API_KEY+
                            "&cx="+CUSTOM_SEARCH_ID+
                            "&searchType="+SEARCH_TYPE_IMAGE+FILTER;

@GET(QUERY)
public GoogleSearchResponse search(@Query("q") String query,
                                   @Query("start") long startIndex);
@GET(QUERY)
public GoogleSearchResponse search(@Query("q") String query,
                                   @Query("start") long startIndex,
                                   @Query("searchType") String searchType,
                                   @Query("limit") String limit,
                                   @Query("offset") String offset);

SpiceRequest

 String query;
long startIndex;
String limit;
String offset;

public SampleRetrofitSpiceRequest(String query,long startIndex,String limit,String offset) {
    super(GoogleSearchResponse.class,GoogleSearchInterface.class);
    this.query = query;
    this.startIndex = startIndex;
    this.limit=limit;
    this.offset=offset;
}

public SampleRetrofitSpiceRequest(String query, long startIndex) {
    super(GoogleSearchResponse.class, GoogleSearchInterface.class);
    this.query = query;
    this.startIndex = startIndex;
}
@Override
public GoogleSearchResponse loadDataFromNetwork() throws Exception {
    return getService().search(query,startIndex);
}

SpiceService

public class SampleRetrofitSpiceService extends RetrofitGsonSpiceService {
@Override
public void onCreate() {
    super.onCreate();
    addRetrofitInterface(GoogleSearchInterface.class);
}

@Override
protected String getServerUrl() {
    return GoogleSearchInterface.BASE_URL;
}

发送请求的方法

 public void sendRequest(String query,int page){
    searchQuery = query;
    request = new SampleRetrofitSpiceRequest(query, page);
   spiceManager.execute(request, query, DurationInMillis.ONE_WEEK, new RequestImageListener());
 /*   try {
        spiceManager.getFromCache(GoogleSearchResponse.class, "country",DurationInMillis.ONE_WEEK,new RequestImageListener());
    }catch(Exception e){
        e.printStackTrace();
    }*/
    request=null;
}

PS我正在编写一个将进行图像搜索的应用程序,前10个结果已成功加载,但下一页正在重复上一页。 我花了很多时间,在spiceRequst中发送的Google api的&start参数被忽略了。 谢谢。

解决方案是在自定义SpiceService.class中覆盖此方法

 @Override
protected RestAdapter.Builder createRestAdapterBuilder() {
    RestAdapter.Builder builder = new RestAdapter.Builder()
            .setLogLevel(RestAdapter.LogLevel.BASIC)
            .setConverter(getConverter())
            .setEndpoint(getServerUrl());
    return builder;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM