我需要发一个帖子请求,使得传递的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无法解析数据密钥。