C#SOAP WSDL从Magento获取结果

C#SOAP WSDL从Magento获取结果,c#,magento,soap,wsdl,C#,Magento,Soap,Wsdl,我有来自Magento的SOAP wsdl,我必须从中获得简单的产品列表。 逻辑是从catalogProductList中获取“简单”产品 到目前为止,在VS2015中,我已经创建了控制台应用程序,并在参考中添加了服务参考,粘贴了wsdl的url,但我不知道该怎么做,也没有找到任何类似的示例 在PHP中,代码如下所示: $proxy = new SoapClient('http://magentowebshop/api/v2_soap/?wsdl'); $sessionId = $proxy-

我有来自Magento的SOAP wsdl,我必须从中获得简单的产品列表。 逻辑是从catalogProductList中获取“简单”产品

到目前为止,在VS2015中,我已经创建了控制台应用程序,并在参考中添加了服务参考,粘贴了wsdl的url,但我不知道该怎么做,也没有找到任何类似的示例

在PHP中,代码如下所示:

$proxy = new SoapClient('http://magentowebshop/api/v2_soap/?wsdl'); 
$sessionId = $proxy->login('user', 'pass'); 

$complexFilter = array(
    'complex_filter' => array(
        array(
            'key' => 'type',
            'value' => array('key' => 'in', 'value' => 'simple')
        )
    )
);
$result = $proxy->catalogProductList($sessionId, $complexFilter);
var_dump($result);

添加serviceReference时,它要求您输入名称空间

在您的代码中,使用该名称空间创建一个客户端,以便能够调用WSDL的公开方法

private void testMethod 
{
    ServiceReference1.ExampleClient client ;

    client = new ServiceReference1.ExampleClient();

    client.exampleMethod() ;

}
键入
servicerence1.
时,您将看到一个基于您添加的wsdl创建的客户机列表

然后,当您键入
客户端时。
您将看到实现所需的方法

好的,我找到了一个解决方案:

    ServiceReference1.PortTypeClient client = new 
    ServiceReference1.PortTypeClient();

    string sessionID = client.login("user", "pass");

    filters filter = new filters();

    filter.complex_filter = new[]
    {
        new complexFilter
        {
            key = "type",
            value = new associativeEntity { key = "in", value = "simple"}
        }
    };
    var list = client.catalogProductList(sessionID, filter, "catalog");

    client.endSession(sessionID);

,但SOAP服务通常也不是这样。从步骤10开始,它与PHP.ok、tnx非常相似。当我输入client时,我看到了我不需要的方法。例如,我使用catalogProductList,它需要sessionid字符串(即用户和apikey),然后过滤过滤器,然后是字符串storeview,如何使用最后一个,过滤和存储视图?抱歉,我无法帮助您使用magento web shop,这是另一个问题,请查看他们的支持论坛或此处的SO,我相信原来的问题已经得到了回答;-)