標題和正文身份驗證示例

@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);