【发布时间】:2018-07-23 13:49:01
【问题描述】:
我正在使用 Postman 通过 url 访问服务器 GET 调用。并在邮递员的标题部分添加如下标题,因此当在邮递员中运行时,它可以工作并在正文中发送数据,但在使用 Retrofit 的 android 中无法使用 401 错误。
X-APIClient: {"apiClientId":"testing-account-cli","apiToken":"$2y$10$C/quaRQUsrWa30hjQJuckOXbW9kIZ.W3G1TlLMYg6lr/XDUes7SM."}
X-Header-Request: {"deviceId":"ffffffff-daac-6513-4eca-0c41298e00df"}
它适用于 Postman。但是在带有 Retrofit 的 Android 中,它不起作用 401 错误。
1)
@GET("user-list")
Call<User> getUsers(@HeaderMap Map<String, String> headers);
2)
public static Map<String,String> addCustomHeaders()
{
headers = new HashMap<>();
headers.put("X-APIClient",
"\"apiClientId\":\"testing-account-cli\",\"apiToken\":\"$2y$10$C/quaRQUsrWa30hjQJuckOXbW9kIZ.W3G1TlLMYg6lr/XDUes7SM.");
headers.put("X-Header-Request", "\"deviceId\":\"ffffffff-daac-6513-4eca-0c41298e00df")
;
return headers;
}
3) 使用下面调用 GET 总是失败
Call<User> call = api.getUsers(RetrofitClient.addCustomHeaders());
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
Log.i(TAG, "GET User Success." + response.body().toString());
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Log.i(TAG, "GET Failed Users." + t.getMessage());
}
});
请帮忙看看有什么问题。因为它总是抛出 401,身份验证为假,授权为假。
【问题讨论】:
标签: android retrofit retrofit2