在VB.NET上调用Magento API v1产品列表

时间:2018-01-24 13:46:04

标签: vb.net api magento soap

VB.NET的等价物是什么?

$filters = array('sku' => array('like'=>'zol%'));

$products = $proxy->call($sessionId, 'product.list', array($filters));

因为我试图通过这样的方式从Magento检索特定产品:

Dim products = magentoV1_servico.call(magentoV1_sessao, "product.list", filters)

我得到的是一条错误消息,说“#34;创建XML文件时出错"。我猜测我的过滤器是错误的,因为我不确定如何正确发送这些数组参数。我正在使用Magento 1.9,SOAP API v1。

2 个答案:

答案 0 :(得分:0)

我无法访问WSDL,但从外观来看,.Net签名应该是这样的:

Dim filters As New List(Of String, List(Of KeyValuePair(Of String, String)))()

也许应该使用Dictionary而不是List,但是从examples on their page看起来它看起来像重复一样。检查WSDL并使用这些技术,如果这还没有发现。

您可以像这样创建特定过滤器的翻译:

Dim filter1 As New List(Of KeyValuePair(of String, String))
filter1.Add(New KeyValuePair("like", "zol%"))

filters.Add("sku", filter1)

答案 1 :(得分:0)

在Magento的V1中尝试使用很多不同的对象后,我遇到了同样的问题。始终是相同的“创建XML文件时出错”的问题。

因为我们需要处理应该序列化的复杂对象,所以我什至尝试使用

SerializableDictionary<TKey, TValue> Class

,但是没有运气。在这种情况下,问题出在编译期间,“ Microsoft.WindowsServerSolutions.Administration.ObjectModel.dll已损坏”。

我已经绕过了使用Magento SOAP V2的问题,该问题实际上不需要我需要的关联数组。

另一种可能的解决方案是像this onethis one这样的指南中所述为您自己提供SerializibleDictonary,但我没有时间进行测试。