Stack Exchange
How to POST variable as query parameter in retrofit
//url to consume - baseURL/xyz/test-map.php?key=3ec9864e9db5fb47da338d108503d4612fc65b80


@FormUrlEncoded
@POST("xyz/test-map.php")
Call<Root> getResponseForApi (@Field(value = "key", encoded = true) String key ,
                              @Field("auth_key") int auth_key,
                              @Field("password") int password) ;

when i try to call ,
    Call<Root> call = apiServiceImplementation.getResponseForApi(key, auth_key, password);

    call.enqueue(new Callback<Root>() {
        @Override
        public void onResponse(Call<Root> call, Response<Root> response) {
            Root data = response.body();
        }

        @Override
        public void onFailure(Call<Root> call, Throwable t) {

            Log.e("TAG", "onFailure: " );
        }
    });

i am getting URL in on response as without query parameter like "baseURL/xyz/test-map.php" only.
why it is not encoding

You should use @Query instead of @Field

@italankin - thank you

you can use both @Query and @Field in your request.
here is your solution.
@FormUrlEncoded
@POST("xyz/test-map.php")
Call<Root> getResponseForApi (@Query("key") String key ,
                              @Field("auth_key") int auth_key,
                              @Field("password") int password) ;

