Retrofit 2禁用post参数的编码

时间:2017-08-28 18:26:42

标签: android post retrofit retrofit2

我是初学者,在改造中...... 我需要使用简单参数发送POST请求

name:value

  • 登录[name]:some-name
  • 登录[pw]:some-pw
  • 日期:2017-08-28T12:12:12 + 0200

所以,我试过

@FormUrlEncoded
@POST(urlLogin)
Call<Login> signIn(@Field("login[name]") String name,
                    @Field("login[pw]") String pw,                          
                    @Field("date") String date);
发送到服务器的

  • 登录%5Bname%5D:some-name
  • 登录%5Bpw%5D:some-pw
  • 日期:2017-08-28T21%3A11%3A57%2B0200

@FormUrlEncoded
@POST(urlLogin)
Call<Login> signIn(@Field(value = "login[name]", encoded = true) String name,
                   @Field(value = "login[pw]", encoded = true) String pw,                          
                   @Field(value = "date", encoded = true) String date);

给出:

  • 登录%5Bname%5D:some-name
  • 登录%5Bpw%5D:some-pw
  • 日期:2017-08-28T19%3A59%3A04 + 0200

@FormUrlEncoded
@POST(urlLogin)
Call<Login> signIn(@FieldMap Map<String, String> fieldsMap);

给出:

  • 登录%5Bname%5D:some-name
  • 登录%5Bpw%5D:some-pw
  • 日期:2017-08-28T21%3A11%3A57%2B0200

@FormUrlEncoded
@POST(urlLogin)
Call<Login> signIn(@FieldMap(encoded = true) Map<String, String> fieldsMap);

给出:

  • 登录%5Bname%5D:some-name
  • 登录%5Bpw%5D:some-pw
  • 日期:2017-08-28T19%3A59%3A04 + 0200
请帮帮我,我错了什么? 日期有什么问题?为什么“+”被禁用编码而“:”被编码? 以及为什么参数名称被编码以及如何禁用它?

0 个答案:

没有答案