我想在改造界面中添加或追加我的网址.接口代码如下.
public interface PostInterface {
@POST("api/v1/app/user/resetpassword/token")
@Headers({
"Content-Type: application/json"
})
Call<JsonObject> getResult(@Body JsonObject body);
}
Run Code Online (Sandbox Code Playgroud)
在给定的URL @POST("api/v1/wallet/user/resetpassword/token ")中,我想附加标记值.它是活动变量的值.
我的活动代码在下面给出了我称之为方法的地方.
try {
JsonObject params = new JsonObject();
params.addProperty("email", email);
params.addProperty("signup_mode", "mobile");
PostInterface apiService =TestApiClient.getClient(this).create(PostInterface.class);
Call call = apiService.getResult(params);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Run Code Online (Sandbox Code Playgroud)
我不完全确定我是否理解这应该是路径的一部分还是查询参数的一部分,所以这里有两种方式.
部分路径
通过改造来实现这一点的方法是使其成为路径中的"变量"并将其作为参数传递给函数.
@POST("api/v1/app/user/resetpassword/{token}")
@Headers({
"Content-Type: application/json"
})
Call<JsonObject> getResult(
@Path("token") String token,
@Body JsonObject body);
Run Code Online (Sandbox Code Playgroud)
注意{token}网址中的花括号.这告诉我们应该将你的方法的参数格式化为url.要知道哪个参数使用的注释Path与正在格式化的注释具有相同的名称.这会导致网址像api/v1/app/user/resetpassword/09df7seh98ghs(09df7seh98ghs是我对代码的不良表示).
(这假设您的令牌是一个字符串.Retrofit支持更多.)
部分查询参数
与@Path使用@Query注释执行此操作的方式类似,您可以使用注释:
@POST("api/v1/app/user/resetpassword/token")
@Headers({
"Content-Type: application/json"
})
Call<JsonObject> getResult(
@Query("token") String token,
@Body JsonObject body);
Run Code Online (Sandbox Code Playgroud)
这里的区别在于,改造会将给定的令牌添加为查询参数,从而产生类似的URL api/v1/app/user/resetpassword/token?token=...
| 归档时间: |
|
| 查看次数: |
3523 次 |
| 最近记录: |