我尝试将json对象发送到休息服务,但是我得到了一些错误:
http://localhost:8080/api/v1/cardLimit 400(错误请求);
换行到JSON
public class GameLimit implements Serializable {
private static final long serialVersionUID = 1L;
private LimitType firstLimit;
private LimitType secondLimit;
public LimitType getFirstLimit() {
return firstLimit;
}
public void setFirstLimit(LimitType firstLimit) {
this.firstLimit = firstLimit;
}
public LimitType getSecondLimit() {
return secondLimit;
}
public void setSecondLimit(LimitType secondLimit) {
this.secondLimit = secondLimit;
}
}
public class LimitType implements Serializable{
private static final long serialVersionUID = 1L;
private BigDecimal limit;
private String type;
private String status;
public BigDecimal getLimit() {
return limit;
}
public void setLimit(BigDecimal limit) {
this.limit = limit;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
限制请求对象
public class LimitReq extends GameLimit {
private String key;
public String getKey() {
return key;
}
}
RestController:
@RequestMapping(value = "/GameLimit", method = RequestMethod.POST)
public Response setCardLimit(@RequestBody GameLimitReq request) throws Exception {
return limitService.updateGameLimit(request);
}
TypeScript客户端:
changeLimits(firstLimit: IWidgetLimit, secondLimit: IWidgetLimit, key: string): ng.IPromise<any> {
return this.$http.post(this.apiPrefix + '/GameLimit', {
'firstLimit': {
limit: firstLimit.limit,
type: firstLimit.type,
status: firstLimit.status
},
'secondLimit': {
limit: secondLimit.limit,
type: secondLimit.type,
status: secondLimit.status,
},
key: key
}).then(function (response: any) {
return response.data;
}.bind(this));
}
答案 0 :(得分:0)
看到此question and answer 400错误表示您的json格式不正确。
从您的代码段开始,似乎行limitService.updateGameLimit(request);
应该提供JSON,但它不包含在代码snipets中。获得该方法的输出后,可以通过JsonLint运行它来检查语法。然后可以从那里进行修理。
从你的打字稿客户端看来,这提供了无效的json。虽然我并不完全精通打字稿,但即使有隐含的引号,这肯定会有一些格式错误的JSON。至少应该有firstLimit,secondLimit和key的双引号。
答案 1 :(得分:0)
这是因为你的json没有正确形成。
有多种原因您在行尾有逗号
status: secondLimit.status,
删除该逗号。
完成后,请在jsonlint.com或类似服务上验证示例输出。它可以帮助你找出错误。