You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Estes Express v4.0 Rate Quote API商品节点封装校验错误咨询

问题解决步骤

核心错误原因

  • 你不需要手动新增Items属性,WSDL自动生成的Item属性本身已经适配baseCommodities/fullCommodities节点的序列化规则
  • 你新增的Items属性绑定了commodity节点,导致commodity直接暴露在rateRequest下,不符合接口Schema要求

修改方案

第一步:还原请求类定义

删除你手动新增的Items属性,保留WSDL自动生成的Item属性即可:

// 仅保留WSDL生成的原始Item属性,删除你加的Items属性
[System.Xml.Serialization.XmlElementAttribute("baseCommodities", 
        typeof(BaseCommoditiesType))]
[System.Xml.Serialization.XmlElementAttribute("fullCommodities", 
        typeof(FullCommoditiesType))]
public object Item {
    get {
        return this.itemField;
    }
    set {
        this.itemField = value;
    }
}

第二步:修改测试代码赋值逻辑

FullCommoditiesType类本身会自带存储commodity节点的属性(通常是名为commodity的数组/集合类型),按以下逻辑赋值即可:

// 原有创建fcom、fcomtypes、dim的代码不变
FullCommoditiesType fcom = new FullCommoditiesType();
FullCommodityType fcomtypes = new FullCommodityType();
DimensionsType dim = new DimensionsType();
dim.length = "75";
dim.width = "50";
dim.height = "25";

fcomtypes.@class = 70.0M;
fcomtypes.weight = "500";
fcomtypes.pieces = "2";
fcomtypes.pieceType = PackagingType.PT;
fcomtypes.classSpecified = true;
fcomtypes.dimensions = dim;
fcomtypes.description = "test"; // 补全你遗漏的描述字段

// 给FullCommoditiesType的commodity属性赋值,支持传多个商品
fcom.commodity = new FullCommodityType[] { fcomtypes };
// 把fullCommodities对象赋值给原始的Item属性
request.Item = fcom;

// 删除你之前加的request.Items = fcomtypes; 这行代码

// 后续调用接口的代码不变
quote = service.getQuote(request);

生成的正确请求结构

修改后rateRequest下的商品节点会符合Schema要求:

<fullCommodities>
    <commodity>
        <class>70.0</class>
        <weight>500</weight>
        <pieces>2</pieces>
        <pieceType>PT</pieceType>
        <dimensions>
            <length>75</length>
            <width>50</width>
            <height>25</height>
        </dimensions>
        <description>test</description>
    </commodity>
</fullCommodities>

内容的提问来源于stack exchange,提问作者duerzd696

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:15:03