我正在编写一个简单的C#SOAP客户端来发送API请求,但是当我尝试发送一个看起来像是在API请求的不同“级别”的值时,我收到一个NullPointerException。
我编写了以下代码来创建API请求的实例:
CreateOrderRequest createOrder = new CreateOrderRequest();
使用SOAP UI时,XML请求包含以下摘录:
<data:ProductCode>RX888</data:ProductCode>
<data:Orders>
<!--Zero or more repetitions:-->
<data:OrderLine>
<!--Optional:-->
<data:OrderAmount>157.65</data:OrderAmount>
<data:OrderRef>test</data:OrderRef>
</data:OrderLine>
</data:Orders>
在我的代码中,我可以通过编写以下内容来指定用于产品代码的值:
createOrder.ProductCode = "RX888";
当我尝试为OrderAmount指定一个值时,如果我执行`createOrder.OrderAmount =“5.99”;
,我会得到一个nullpointer异常如果我尝试为OrderRef指定一个值,我也会这样做。
有人可以帮助我让这个工作吗?!
答案 0 :(得分:1)
根据您的xml,似乎 没有createOrder.OrderAmount
。
您的xml似乎表明您要设置createOrder.OrderLine[n].OrderAmount
,其中n
是OrderLine列表(?)中的项目。
由于您获得了NRE,最简单的解释是您从未实例化过List,这意味着它是null
。
将此添加到CreateOrderRequest
的构造函数中应该有所帮助:
this.OrderLines = new List<OrderLine>();
当然,请根据CreateOrderRequest