简体   繁体   English

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

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

I searched but did not find a helpful information. 我搜索了但没有找到有用的信息。 Trying to deal with the REST API Client, I am use robospice in conjunction with retofit, I want to look at the request string that is sent to the service. 尝试处理REST API客户端时,我将robospice与retofit结合使用,我想查看发送到服务的请求字符串。 Is it possible to pull an entire string URL from Robospice or Retrofit? 是否可以从Robospice或Retrofit提取整个字符串URL?

Here is my interface: 这是我的界面:

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 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 SpiceService

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

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

Method which send request 发送请求的方法

 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 I'm writing an application that will make image search, first 10 result successfully loading but next page is repeating previous page. PS我正在编写一个将进行图像搜索的应用程序,前10个结果已成功加载,但下一页正在重复上一页。 I fight with this lot of time, &start parameter of google api that sent in spiceRequst is ignored. 我花了很多时间,在spiceRequst中发送的Google api的&start参数被忽略了。 Thank you. 谢谢。

The solution was to override this method in custom SpiceService.class 解决方案是在自定义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