我正在使用Retrofit和Robospice在我的Android应用程序中进行API调用.所有的@POST方法都很有用,所以@GET命令在URL中没有任何参数也是如此,但是我无法获得任何@GET调用来使用参数!
例如,如果我的API路径是"my/api/call /"并且我想在URL中使用2个参数"param1"和"param2",那么get调用将如下所示:
http://www.example.com/my/api/call?param1=value1m2=value2
所以我设置了我的@GET界面,如下所示:
@GET("/my/api/call?param1={p1}¶m2={p2}")
Response getMyThing(@Path("p1")
String param1, @Path("p2")
String param2);
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,说
"请求网络执行期间发生异常:URL查询字符串" /my/api/call?param1={p1}¶m2={p2}"方法getMyThing可能没有替换块."
我究竟做错了什么?
我有一个申请.我startActivity()用来开始活动.
任何人都可以告诉我为什么系统首先调用onStart()新的Activity而不是父母onStop()?这是否可能(没有系统错误)?
我发现在onStart()之后直接调用Fragment onStop() - 为什么?回答,但我与Fragments没有任何共同点,并且使用了android-support库.我被困了,因为我使用的是RoboSpice,它必须在onStart和onStop中包含正确的同步方法.我不能,因为系统以错误的顺序调用它.
我在此应用程序中也使用GCM和Analytics库.
lifecycle android android-fragments android-activity robospice
我正在编写一个使用RoboSpice的应用程序.在请求侦听器onRequestFailure(SpiceException arg0)中是否有一种方法可以确定错误是由于发生了401 HTTP错误?
我有一个后端服务,当令牌到期时返回401错误,当发生这种情况时,我需要提示用户重新输入他们的凭据.
反正知道发生了401 HTTP错误吗?
以下是我的请求示例.
public class LookupRequest extends SpringAndroidSpiceRequest <Product> {
public String searchText;
public String searchMode;
public LookupRequest() {
super( Product.class );
}
@Override
public Product loadDataFromNetwork() throws Exception {
String url = String.format("%s/Lookup?s=%s&m=%s", Constants.BASE_URL, searchText, searchMode);
Ln.d("Calling URL: %s", url);
return getRestTemplate().getForObject(url, Product.class );
}
Run Code Online (Sandbox Code Playgroud) 我在我的项目中实现了robospice并对所有api调用使用了改进.对于某些请求,我需要增加超时,请让我知道我该怎么做?
实际上我正在使用扩展RetrofitGsonSpiceService的服务.我的服务类的代码如下:
public class MyService extends RetrofitGsonSpiceService {
@Override
public void onCreate() {
super.onCreate();
addRetrofitInterface(MyInterface.class);
}
@Override
public CacheManager createCacheManager(Application application) throws CacheCreationException {
CacheManager cacheManager = new CacheManager();
ObjectPersisterFactory persistFactory = new RetrofitObjectPersisterFactory(application,
getConverter(), getCacheFolder());
persistFactory.setAsyncSaveEnabled(true);
cacheManager.addPersister(persistFactory);
return cacheManager;
}
@Override
protected String getServerUrl() {
return Utils.getBaseUrl();
}
@Override
protected RestAdapter.Builder createRestAdapterBuilder() {
RestAdapter.Builder builder = new RestAdapter.Builder().setRequestInterceptor(
new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader(Const.HEADER_DEVICE_TYPE_KEY,
Const.HEADER_DEVICE_TYPE_VALUE);
}
}
);
builder.setEndpoint(getServerUrl()).setConverter(getConverter());
return builder;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找android robospice库如何管理活动生命周期的技术答案.从入门页面:
https://github.com/octo-online/robospice/wiki/Starter-Guide
"作为Activity(或其他上下文)的内部类,添加一个将更新UI的RequestlListener.不要担心内存泄漏,RoboSpice会管理您活动的生命周期."
我的问题是robospice如何自动更新请求侦听器,以便它仍然能够在轮换后以及在活动被销毁并重新创建为新实例之后使用正确的上下文调用正确的侦听器?
我一直试图对源代码进行反向工程,但还没有找到答案:
是否可以暂停当前正在运行的后台服务并从其执行停止点开始再次运行它?
如果没有,是否至少可以在完成执行之前发送信号以停止执行SpiceService?
我已成功创建了一个Retrofit API Rest客户端,同时进行GET和POST调用,并将其作为后台服务整合到Robospice中.
但是,我希望Robospice服务连接到数据库,并从GET调用异步地保留检索到的对象.使用Retrofit Callback类似乎是显而易见的方式,但连接到数据库需要Context,我担心泄漏Context.
那么,在处理请求之前和之后,让Robospice SpiceService将数据持久保存到数据库的最佳方法是什么?
我使用RoboSpice库来执行异步任务.从他们的例子中,spice服务在BaseActivity中声明,它从activity的onStart方法开始,并在activity的onStop中停止.一切都很好,但是当我想从互联网下载文件,然后我改为另一个活动时,这个下载任务被取消,因为spice服务已停止.看起来像:
public abstract class BaseActivity{
/** The request manager. */
private SpiceManager requestManager = new SpiceManager(RequestService.class);
@Override
protected void onStart() {
requestManager.start(this);
super.onStart();
}
@Override
protected void onStop() {
requestManager.shouldStop();
super.onStop();
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有任何安全的方法来保持下载任务继续从Spice服务运行(此任务不触摸UI),另一个任务正常工作(意味着它们可以在停止活动时取消)但它仍然可以尊重活动生活圈.
我尝试了什么 ::
JSON响应POJO我需要更多信息 ::
Robospice,它看起来像周围的任何包装Spring或Retrofit或AsyncHttp等Spring或Retrofit或AsyncHttp等Spring或Retrofit或AsyncHttp等作为样板代码,使开发更容易如果我不对,请提供明确的信息
我是android的新手,请轻松回答问题
android ×10
robospice ×10
retrofit ×5
asynchronous ×2
android-ion ×1
api ×1
get ×1
java ×1
lifecycle ×1