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