尝试将json数组发布到spring rest controller时出现415错误

时间:2015-09-22 08:03:03

标签: json spring

我的json请求如下

{    “分化”: “XX”,    “类别”: “XX”,    “操作”: “XXX”,    “的transactionId”: “XX”,    “轨段编号”: “XXX”,    “attentionReason”: “”,    “carNeedAttention”: “”,    “chargableDamage”: “X”,    “丢失物品”:””,    “罪行”: “N”,    “outInAgentNumber”: “XX”,    “CLIST”:{       {          “ID”: “230”,          “元素代码”: “XXX”,          “值”: “XXX”,          “意见”: “XX”,          “标签”:””,          “uiComponent”: “”,          “类型特征”:“”       } },    “outInCprNumber”: “XX”,    “outInDate”: “”,    “outInDuration”: “”,    “outInFuel”: “75”,    “outInKm”: “9999”,    “outInRem1”: “”,    “outInRem2”: “”,    “outInRem3”: “”,    “username” 的: “XX”,    “vehicleRetBy”: “” }

我有一个弹簧控制器类

@Controller
@RequestMapping("/services")
public class CheckListController {
    @RequestMapping(value = "/checkList", method = RequestMethod.POST, consumes="application/json",produces="application/json")
    public ModelMap updateCheckList(@RequestBody CheckList checkList){
        ModelMap modelMap = new ModelMap();

        return modelMap;
    }
}

CheckList类如下

import java.util.List;

public class CheckList {
    String division;
    String category;
    String operation;
    String transactionId;
    String trackNumber;
    String attentionReason;
    String carNeedAttention;
    String chargableDamage;
    String missingItems;
    String offences;
    String outInAgentNumber;
    List<MetaData> cList;
    String outInCprNumber;
    String outInDate;
    String outInDuration;
    String outInFuel;
    String outInKm;
    String outInRem1;
    String outInRem2;
    String outInRem3;
    String userName;
    String vehicleRetBy;
    String updateMasterImage;

    public String getDivision() {
        return division;
    }

    public void setDivision(String division) {
        this.division = division;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getOperation() {
        return operation;
    }

    public void setOperation(String operation) {
        this.operation = operation;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getTrackNumber() {
        return trackNumber;
    }

    public void setTrackNumber(String trackNumber) {
        this.trackNumber = trackNumber;
    }

    public String getAttentionReason() {
        return attentionReason;
    }

    public void setAttentionReason(String attentionReason) {
        this.attentionReason = attentionReason;
    }

    public String getCarNeedAttention() {
        return carNeedAttention;
    }

    public void setCarNeedAttention(String carNeedAttention) {
        this.carNeedAttention = carNeedAttention;
    }

    public String getChargableDamage() {
        return chargableDamage;
    }

    public void setChargableDamage(String chargableDamage) {
        this.chargableDamage = chargableDamage;
    }

    public String getMissingItems() {
        return missingItems;
    }

    public void setMissingItems(String missingItems) {
        this.missingItems = missingItems;
    }

    public String getOffences() {
        return offences;
    }

    public void setOffences(String offences) {
        this.offences = offences;
    }

    public List<MetaData> getcList() {
        return cList;
    }

    public void setcList(List<MetaData> cList) {
        this.cList = cList;
    }


//    public AccessoryList getAccessoryList() {
//        return accessoryList;
//    }
//
//    public void setAccessoryList(AccessoryList accessoryList) {
//        this.accessoryList = accessoryList;
//    }

    public String getOutInCprNumber() {
        return outInCprNumber;
    }

    public void setOutInCprNumber(String outInCprNumber) {
        this.outInCprNumber = outInCprNumber;
    }

    public String getOutInDate() {
        return outInDate;
    }

    public void setOutInDate(String outInDate) {
        this.outInDate = outInDate;
    }

    public String getOutInRem1() {
        return outInRem1;
    }

    public void setOutInRem1(String outInRem1) {
        this.outInRem1 = outInRem1;
    }

    public String getOutInRem2() {
        return outInRem2;
    }

    public void setOutInRem2(String outInRem2) {
        this.outInRem2 = outInRem2;
    }

    public String getOutInRem3() {
        return outInRem3;
    }

    public void setOutInRem3(String outInRem3) {
        this.outInRem3 = outInRem3;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getVehicleRetBy() {
        return vehicleRetBy;
    }

    public void setVehicleRetBy(String vehicleRetBy) {
        this.vehicleRetBy = vehicleRetBy;
    }

    public String getUpdateMasterImage() {
        return updateMasterImage;
    }

    public void setUpdateMasterImage(String updateMasterImage) {
        this.updateMasterImage = updateMasterImage;
    }

    public String getOutInAgentNumber() {
        return outInAgentNumber;
    }

    public void setOutInAgentNumber(String outInAgentNumber) {
        this.outInAgentNumber = outInAgentNumber;
    }

    public String getOutInDuration() {
        return outInDuration;
    }

    public void setOutInDuration(String outInDuration) {
        this.outInDuration = outInDuration;
    }

    public String getOutInFuel() {
        return outInFuel;
    }

    public void setOutInFuel(String outInFuel) {
        this.outInFuel = outInFuel;
    }

    public String getOutInKm() {
        return outInKm;
    }

    public void setOutInKm(String outInKm) {
        this.outInKm = outInKm;
    }

}

MetaData如下:

public class MetaData{

    Integer id;
    String label;
    String uiComponent;
    String featureType;
    String value;  
    String comment;  
    String elementCode;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public String getLabel()
    {
        return label;
    }

    public void setLabel(String label)
    {
        this.label = label;
    }

    public String getUiComponent()
    {
        return uiComponent;
    }

    public void setUiComponent(String uiComponent)
    {
        this.uiComponent = uiComponent;
    }

    public String getFeatureType()
    {
        return featureType;
    }

    public void setFeatureType(String featureType)
    {
        this.featureType = featureType;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getElementCode() {
        return elementCode;
    }

    public void setElementCode(String elementCode) {
        this.elementCode = elementCode;
    }

}

但是当我提交json请求时,它给出了415个未上传的媒体类型错误。 这段代码有什么问题。有没有人能够得到答案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

代码没什么。您只需要确保您的POST请求的HTTP Content-Type标头设置为&#34; application / json&#34;。

如果使用curl POST数据,可以使用以下参数设置标题值:

curl -H "Content-Type:application/json"

也添加一个Accept标头:

curl -H "Content-Type:application/json" -H "Accept:application/json"