是的,您可以在运行时传递它们。事实上,几乎与您输入的内容完全相同。这将在您的 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") String blah
注释,就像您的情况一样!
我也发现它令人困惑,文档清楚地说它替换了标题,但它没有!
它实际上是像@Headers("hardcoded_string_of_liited_use")
注释一样添加的
希望这可以帮助 ;)