'Special characters are encoded in POST request in android. How to avoid this?

I am calling a post API with some parameters. one the parameters is

activatecode="aaaaaa$rr"

when the API call is made, it is sent as

activatecode=aaaaaa%24rr

The $ is encoded as %24. How to avoid this and send the special character as it is?



Solution 1:[1]

I am using Retrofit 2.9.0.

I have this service :

interface WordpressService {
    @GET("wp-json/wp/v2/posts")
    suspend fun getPosts(
        @Query("page") page: Int,
        @Query("per_page") limit: Int,
        @Query("_fields", encoded = true) fields: String = "date,link,title,content,excerpt,author"
    ): List<Post>
}

Without putting encode = true, I end up with this request :

GET http://example.org/wp-json/wp/v2/posts?page=1&per_page=10&_fields=date%2Clink%2Ctitle%2Ccontent%2Cexcerpt%2Cauthor

With encode = true, I get :

GET http://motspirituel.org/wp-json/wp/v2/posts?page=1&per_page=10&_fields=date,link,title,content,excerpt,author

So in my case, adding encode = true in annotation solved my problem.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Bipi