Android Retrofit: content type as application/x-www-form-urlencoded
AndroidPostRetrofitAndroid Problem Overview
Fairly new to android development. I am trying to use retrofit to send a post request. In my retrofit logs, I am seeing
Content-Type: text/plain; charset=utf-8
I found that requests will only work if I use the content type:
application/x-www-form-urlencoded
I have searched the googles and have found no clear way to explicitly set the content type. Anyone know how to do it?
Android Solutions
Solution 1 - Android
In the class where you define your service, modify the related method to follow the pattern below:
@FormUrlEncoded
@POST/GET/PUT/DELETE("/your_endpoint")
Object yourMethodName(@Field("your_field") String yourField,...);
Solution 2 - Android
In retrofit 2 is a little bit different:
@FormUrlEncoded
@POST/GET/PUT/DELETE("/your_endpoint")
Call<Task> createTask (@Field("your_field") String title);
Solution 3 - Android
You have to add the request header like this :
@Headers("Content-Type: application/x-www-form-urlencoded")
in the interface which has the method declarations.