标题和正文身份验证示例
@Header
和 @Body
注释可以放入方法签名中,Retrofit 将根据你的模型自动创建它们。
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 可以根据我们发送和期望的对象类型推断出它们是什么。
我们在某处创建了 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);