防止@FormUrlEncoded改造中的编码

时间:2015-08-21 05:59:22

标签: spring retrofit

我需要发一个帖子请求,使得传递的json数据具有密钥对值,其中密钥是数据。 例如,如果我使用如下的jquery,数据是关键。 $.ajax({ url: “/hello", data:{ data: JSON.stringify(dataObject) }, type:"POST", dataType:"json" });

相当于 data:{data:{“firstName”:“john”,“lastName”:“doe”}}。

我正在使用java spring改造,来完成类似的工作。为了传递密钥,我正在使用@FormUrlEncoded and @Field("data") TypedString userInfo

我的改装界面如下   public interface userInfoService { @FormUrlEncoded @POST(“/hello") public Response userInfo(@Field("data") TypedString userInfo);

其中TypedString是{“firstName”:“john”,“lastName”:“doe”}

但是,请求看起来像这样

data =%7B%22firstName%22%3A%22john%22%2C%22lastName%22%3A%22doe%22%7D,因为它形成了url编码.3方api可以看到数据键,但是它有“=”instea“:”,它无法解析

如何获得避免=并实际发送解码请求的请求。

我也尝试使用@Body代替@FormUrlEncoded和@Field。其中@Body的TypedString为{data:{“firstName”:“john”,“lastName”:“doe”}},但由于某种原因,3方api无法解析数据密钥。

0 个答案:

没有答案