我应该送令牌在头到服务器,因为我使用Android的请求Retrofit.
我使用Get头令牌代码,我可以看到令牌:
InterfaceApi api = ApiClient.getClient().create(InterfaceApi.class);
Call<LoginResponse> call = api.getLoginResponse(loginDatum);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
LoginResponse loginResponse = response.body();
String token = response.headers().get("Token");
if (token != null) {
Log.e("tokenTAG", "Token : " + token);
}
Toast.makeText(context, loginResponse.getStatusMessage() + "", Toast.LENGTH_SHORT).show();
loadProgress.setVisibility(View.GONE);
loginBtn.setVisibility(View.VISIBLE);
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
loadProgress.setVisibility(View.GONE);
loginBtn.setVisibility(View.VISIBLE);
}
});
}
Run Code Online (Sandbox Code Playgroud)
但我应该将此标记在标题中发布到服务器,对于POST数据到服务器我使用此代码:
@POST("usersInfo/Authenticate")
Call<LoginResponse> getLoginResponse(@Body LoginDatum loginDatum);
Run Code Online (Sandbox Code Playgroud)
如何将令牌(String token = response.headers().get("Token"))发送到服务器上面的POST代码?
请帮帮我,我是业余爱好者.
试试这段代码:
private String sendToken;
Run Code Online (Sandbox Code Playgroud)
用你的代码替换这段代码:
InterfaceApi api = ApiClient.getClient().create(InterfaceApi.class);
Call<LoginResponse> call = api.getLoginResponse(sendToken, loginDatum);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
LoginResponse loginResponse = response.body();
String token = response.headers().get("Token");
if (token != null) {
Log.e("tokenTAG", "Token : " + token);
sendToken = token;
}
Toast.makeText(context, loginResponse.getStatusMessage() + "", Toast.LENGTH_SHORT).show();
loadProgress.setVisibility(View.GONE);
loginBtn.setVisibility(View.VISIBLE);
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
loadProgress.setVisibility(View.GONE);
loginBtn.setVisibility(View.VISIBLE);
}
});
}
Run Code Online (Sandbox Code Playgroud)
并替换此代码:
@POST("usersInfo/Authenticate")
Call<LoginResponse> getLoginResponse(@Header("Token") String token, @Body LoginDatum loginDatum);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6089 次 |
| 最近记录: |