是的,您可以在运行时传递它们。事实上,几乎和你打出来的一模一样。这将在你的API接口类中,命名为SecretApiInterface.java
public interface SecretApiInterface {
@GET("/secret_things")
SecretThing.List getSecretThings(@Header("Authorization") String token)
}
然后,您将参数从您的请求传递到此接口,如下所示:(例如,此文件将是SecretThingRequest.java)
public class SecretThingRequest extends RetrofitSpiceRequest<SecretThing.List, SecretApiInteface>{
private String token;
public SecretThingRequest(String token) {
super(SecretThing.List.class, SecretApiInterface.class);
this.token = token;
}
@Override
public SecretThing.List loadDataFromNetwork() {
SecretApiInterface service = getService();
return service.getSecretThings(Somehow.Magically.getToken());
}
}
返回令牌的方法调用在哪里,这取决于您定义令牌的位置和方式。Somehow.Magically.getToken()
当然,您可以在接口实现中使用多个@Header(“Blah”)字符串blah
注释,就像您的情况一样!
我也发现它令人困惑,文档清楚地说它取代了标题,但它没有!
它实际上是与注释一起添加的@Headers("hardcoded_string_of_liited_use")
希望这有助于;)