標題和正文身份驗證示例
@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);