将标头添加到翻新呼叫请求

时间:2020-03-18 18:53:13

标签: android retrofit2

我正在研究连接到VPN的Android应用。

我正在将更新请求发送到rest 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) {

            }
        });
    }

现在我需要在请求中添加标题。

标题应如下:

Content-Type=application/x-www-form-urlencoded

我一直在寻找一种将标头添加到请求中的方法,但是我没有一种可以针对我的情况实现的解决方案。

编辑

这是界面:

import 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部分

enter image description here

第2部分

enter image description here

第3部分

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式编码任何标头值

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