添加 header 到改造调用请求
Adding header to retrofit call request
我正在开发一个连接到 VPN 的 Android 应用程序。
我正在向休息发送改装请求api:
private void login_Request(){
Log.d("ESTOY EN LOGIN REQUEST","ESTOY EN LOGIN REQUEST");
LoginRequest loginRequest = new LoginRequest("HALEJANDRO","ALEJANDR0123","password","19.3509","-99.1566");
Call <LoginRequest> call = jsonPlaceHolderApi.createLoginReques(loginRequest);
call.enqueue(new Callback<LoginRequest>() {
@Override
public void onResponse(Call<LoginRequest> call, Response<LoginRequest> response) {
Log.d("ESTOY EN LOGIN REQUEST","ESTOY EN LOGIN REQUEST rsponse "+response);
if (!response.isSuccessful()) {
textViewResult.setText("Code: " + response.code());
return;
}
List<Login> login = (List<Login>) response.body();
for (Login loginResponse : login ){
String content = "";
content += "Access Token: " + loginResponse.getAccess_topken() + "\n";
content += "Token Type: " + loginResponse.getToken_type() + "\n";
textViewResult.append(content);
}
}
@Override
public void onFailure(Call<LoginRequest> call, Throwable t) {
}
});
}
现在我需要在请求中添加一个 header。
header应该是这样的:
Content-Type=application/x-www-form-urlencoded
我一直在寻找将 header 添加到请求中的方法,但我没有可以在我的案例中实施的解决方案。
编辑
这是界面:
进口java.util.List;
进口retrofit2.Call;
导入 retrofit2.http.Body;
导入 retrofit2.http.GET;
导入 retrofit2.http.Headers;
导入 retrofit2.http.POST;
public interface JsonPlaceHolderApi {
@GET("posts")
Call<List<Post>> getPosts();
@POST("token")
@Headers("Content-Type:application/x-www-form-urlencoded")
Call <LoginRequest>createLoginRequest(@Body LoginRequest loginRequest);
}
编辑邮递员请求
第 1 部分
第 2 部分
第 3 部分
您可以对任何 header 值进行硬编码,如下所示
@POST("auth")
@Headers("Any value")
fun createLoginRequest(@Body credentials: Credentials): Observable<Response<User>>
有关详细信息,请参阅 this link
在您的情况下,x-www-form-urlencoded 请求应该像 this 示例中那样处理:
public interface TaskService {
@FormUrlEncoded
@POST("tasks")
Call<Task> createTask(@Field("title") String title);
}
我正在开发一个连接到 VPN 的 Android 应用程序。
我正在向休息发送改装请求api:
private void login_Request(){
Log.d("ESTOY EN LOGIN REQUEST","ESTOY EN LOGIN REQUEST");
LoginRequest loginRequest = new LoginRequest("HALEJANDRO","ALEJANDR0123","password","19.3509","-99.1566");
Call <LoginRequest> call = jsonPlaceHolderApi.createLoginReques(loginRequest);
call.enqueue(new Callback<LoginRequest>() {
@Override
public void onResponse(Call<LoginRequest> call, Response<LoginRequest> response) {
Log.d("ESTOY EN LOGIN REQUEST","ESTOY EN LOGIN REQUEST rsponse "+response);
if (!response.isSuccessful()) {
textViewResult.setText("Code: " + response.code());
return;
}
List<Login> login = (List<Login>) response.body();
for (Login loginResponse : login ){
String content = "";
content += "Access Token: " + loginResponse.getAccess_topken() + "\n";
content += "Token Type: " + loginResponse.getToken_type() + "\n";
textViewResult.append(content);
}
}
@Override
public void onFailure(Call<LoginRequest> call, Throwable t) {
}
});
}
现在我需要在请求中添加一个 header。
header应该是这样的:
Content-Type=application/x-www-form-urlencoded
我一直在寻找将 header 添加到请求中的方法,但我没有可以在我的案例中实施的解决方案。
编辑
这是界面:
进口java.util.List;
进口retrofit2.Call; 导入 retrofit2.http.Body; 导入 retrofit2.http.GET; 导入 retrofit2.http.Headers; 导入 retrofit2.http.POST;
public interface JsonPlaceHolderApi {
@GET("posts")
Call<List<Post>> getPosts();
@POST("token")
@Headers("Content-Type:application/x-www-form-urlencoded")
Call <LoginRequest>createLoginRequest(@Body LoginRequest loginRequest);
}
编辑邮递员请求
第 1 部分
第 2 部分
第 3 部分
您可以对任何 header 值进行硬编码,如下所示
@POST("auth")
@Headers("Any value")
fun createLoginRequest(@Body credentials: Credentials): Observable<Response<User>>
有关详细信息,请参阅 this link
在您的情况下,x-www-form-urlencoded 请求应该像 this 示例中那样处理:
public interface TaskService {
@FormUrlEncoded
@POST("tasks")
Call<Task> createTask(@Field("title") String title);
}