kinezu
kinezu

Reputation: 1272

Android Retrofit: content type as application/x-www-form-urlencoded

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?

Upvotes: 75

Views: 63847

Answers (3)

Daw
Daw

Reputation: 135

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.

Upvotes: 3

Giannis Papadopoulos
Giannis Papadopoulos

Reputation: 180

In retrofit 2 is a little bit different:

@FormUrlEncoded
@POST/GET/PUT/DELETE("/your_endpoint")
Call<Task> createTask (@Field("your_field") String title); 

Upvotes: 18

k3v1n4ud3
k3v1n4ud3

Reputation: 2994

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,...);

Upvotes: 156

Related Questions