Android Retrofit:内容类型为application/x-www-form-urlencoded

kin*_*ezu 43 post android retrofit

Android开发相当新颖.我正在尝试使用改造来发送帖子请求.在我的改造日志中,我看到了

Content-Type: text/plain; charset=utf-8
Run Code Online (Sandbox Code Playgroud)

我发现请求只有在我使用内容类型时才有效:

application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

我搜索了谷歌,发现没有明确的方法来明确设置内容类型.谁知道怎么做?

k3v*_*ud3 97

在您定义服务的类中,修改相关方法以遵循以下模式:

@FormUrlEncoded
@POST/GET/PUT/DELETE("/your_endpoint")
Object yourMethodName(@Field("your_field") String yourField,...);
Run Code Online (Sandbox Code Playgroud)

  • 表单编码方法必须至少包含一个@Field。 (3认同)
  • 我将第二个@Query更改为Field.Worked真棒! (2认同)

小智 5

改造2有点不同:

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