f2p*_*eek 21 rest android httprequest retrofit
我正在尝试使用类似的方式访问资源http://192.168.1.64:5050/api/{api_key}/updater.info.
我该如何动态设置api_key参数?我试过使用RequestInterceptor基本网址没有成功的地方http://192.168.1.64:5050/api/{api_key}.
@Override
public void intercept(RequestFacade request) {
request.addPathParam("api_key", apiKey);
}
Run Code Online (Sandbox Code Playgroud)
还有其他选择吗?
cgr*_*cgr 30
用这个:
@PUT("/path1/path2/{userId}")
void getSomething(
@Path("userId") String userId
);
Run Code Online (Sandbox Code Playgroud)
你调用这样的方法:
String userId = "1234";
service.getSomething(userId);
Run Code Online (Sandbox Code Playgroud)
Jak*_*ton 16
路径替换不会发生在API端点的基本URL内,只会发生在方法上的相对URL字符串.我将假设您不希望在每个接口方法声明上为相对URL添加前缀.
虽然措辞不力,但Endpoint各州的犹太人:
调用者应始终查询实例以获取最新值,而不是缓存返回的值.
这意味着对于每个请求,Endpoint将查询实例以获取基本URL的值.
您可以提供Endpoint可以更改API密钥值的自定义实现:
public final class FooEndpoint implements Endpoint {
private static final String BASE = "http://192.168.1.64:5050/api/";
private String url;
public void setApiKey(String apiKey) {
url = BASE + apiKey;
}
@Override public String getName() {
return "default";
}
@Override public String getUrl() {
if (url == null) throw new IllegalStateException("API key not set.");
return url;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19395 次 |
| 最近记录: |