在改装回调中接收自定义参数
Receiving custom parameter in retrofit callback
这是我的 post
:
@POST("/path")
@FormUrlEncoded
void postIt(@Field("id") String id , Callback<Response> response);
这是 Callback
:
private Callback<Response> responseCallBack = new Callback<Response>() {
@Override
public void success(Response response, Response response2) {
// get the id
}
@Override
public void failure(RetrofitError error) {
// do some thing
}
};
问题:
在 callback
我想接收在 @POST
发布的 ID,我应该怎么做?
而且我无法更改服务器 API
很简单。您可以简单地进行回调以保存请求的 ID 并每次都创建新的回调
class MyCallback extends Callback<Response> {
private final String id;
MyCallback(String id) {
this.id = id
}
@Override
public void success(Response response, Response response2) {
// get the id
}
@Override
public void failure(RetrofitError error) {
// do some thing
}
}
所以当你调用服务时
myService.postIt("777", new MyCallback("777"))
为此我们需要一个摘要 class
abstract class CallBackWithArgument<T> implements Callback<T> {
String arg;
CallBackWithArgument(String arg) {
this.arg = arg;
}
CallBackWithArgument() {
}
并制作一个实例
new CallBackWithArgument<Response>(id) {
@Override
public void success(Response response, Response response2) {
//do something
}
@Override
public void failure(RetrofitError error) {
//do something
}
}
这是我的 post
:
@POST("/path")
@FormUrlEncoded
void postIt(@Field("id") String id , Callback<Response> response);
这是 Callback
:
private Callback<Response> responseCallBack = new Callback<Response>() {
@Override
public void success(Response response, Response response2) {
// get the id
}
@Override
public void failure(RetrofitError error) {
// do some thing
}
};
问题:
在 callback
我想接收在 @POST
发布的 ID,我应该怎么做?
而且我无法更改服务器 API
很简单。您可以简单地进行回调以保存请求的 ID 并每次都创建新的回调
class MyCallback extends Callback<Response> {
private final String id;
MyCallback(String id) {
this.id = id
}
@Override
public void success(Response response, Response response2) {
// get the id
}
@Override
public void failure(RetrofitError error) {
// do some thing
}
}
所以当你调用服务时
myService.postIt("777", new MyCallback("777"))
为此我们需要一个摘要 class
abstract class CallBackWithArgument<T> implements Callback<T> {
String arg;
CallBackWithArgument(String arg) {
this.arg = arg;
}
CallBackWithArgument() {
}
并制作一个实例
new CallBackWithArgument<Response>(id) {
@Override
public void success(Response response, Response response2) {
//do something
}
@Override
public void failure(RetrofitError error) {
//do something
}
}