我的请求模型包含地图,看起来像
public class AddRequest {
public String url;
public String key;
public Map<String, String> attributes;
public AddProductToBasketRequest(String url, String key, Map<String, String> attributes) {
this.url = url;
this.key = key;
this.attributes = attributes;
}
}
当我按
打印我的模型时new Gson().toJson(request)
我有
{"url":"https://www.net-a-porter.com/lalala","attributes":{"size":"it34"},"key":"agtzfnNm"}
但是当我通过改造发送请求时,我在日志中有空属性
{"attributes": {}, "url": "https://www.net-a-porter.com/lalala", "key": "agtzfnNm"}
我的RestAdapter看起来像
public RestAdapter restAdapter = new RestAdapter.Builder()
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Access-Token", token;
}
})
.setEndpoint(url)
.setConverter(new GsonConverter(new GsonBuilder()
.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC)
.serializeNulls()
.create()))
.build();
执行请求的代码看起来像
AddInterface restInterface = restAdapter.create(AddInterface.class);
restInterface.request(id, request, new Callback<Basket>() {
@Override
public void success(Basket basket, Response r) {
}
@Override
public void failure(RetrofitError error) {
}
});
答案 0 :(得分:0)
如果这是您要从POST请求发送的内容
{"url":"https://www.net-a-porter.com/lalala","attributes":{"size":"it34"},"key":"agtzfnNm"}
你应该试试这个:
public class AddRequest {
public String url;
public String key;
public Attributes attributes;
public AddProductToBasketRequest(String url, String key, Attributes attributes) {
this.url = url;
this.key = key;
this.attributes = attributes;
}
public class Attributes {
protected String size;
// getter & setter
}
因为{}应该是一个对象而[]一个列表
答案 1 :(得分:0)
问题只是在代码的另一部分清除了HashMap。