Android 标头和正文:一个身份验证示例
示例
该@Header和@Body注释可以被放置到方法签名,并根据您的模型改造将自动创建它们。
public interface MyService {
@POST("authentication/user")
Call<AuthenticationResponse> authenticateUser(@Body AuthenticationRequest request, @Header("Authorization") String basicToken);
}AuthenticaionRequest是我们的模型,即POJO,其中包含服务器所需的信息。对于此示例,我们的服务器需要客户端密钥和机密。
public class AuthenticationRequest {
String clientKey;
String clientSecret;
}注意,在@Header("Authorization")我们指定的过程中,我们正在填充Authorization标头。其他标题将自动填充,因为Retrofit可以根据我们发送并期望返回的对象类型推断它们的含义。
我们在某个地方创建改造服务。我们确保使用HTTPS。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https:// some example site")
.client(client)
.build();
MyService myService = retrofit.create(MyService.class)然后,我们可以使用我们的服务。
AuthenticationRequest request = new AuthenticationRequest(); request.setClientKey(getClientKey()); request.setClientSecret(getClientSecret()); String basicToken = "Basic " + token; myService.authenticateUser(request, basicToken);