我很高兴地将一个端点连接到我的.NET项目中,制作了包装类,一切都很可爱......(我尽可能地使用PHP教程进行了翻译)我遇到了一个巨大的瓶颈,我不知道如何解决..我无法找到任何关于此的正确信息。
...所以
在PHP中,我可以使用
$calls = array(
array( 'catalog_product.info', 166 ),
array( 'catalog_product.info', 167 ),
array( 'catalog_product.info', 168 ),
);
$results = $soap->multiCall( $session_id, $calls );
在一次通话中,我将获得3个产品,比如70%的http开销可以节省我的费用。
在.NET中我使用此
Dim productReturn As MS.catalogProductReturnEntity
Private myMagento As MS.Mage_Api_Model_Server_V2_HandlerPortType = New MS.Mage_Api_Model_Server_V2_HandlerPortTypeClient
productReturn = myMagento.catalogProductInfo(SessionID, productId, storeView, requestAttr, Nothing)
并返回一个扩展信息项。 .NET中的服务refence
Function catalogProductInfo(ByVal sessionId As String, ByVal product
As String, ByVal storeView As String, ByVal attributes As
MagentoBridge2.MS.catalogProductRequestAttributes, ByVal
productIdentifierType As String) As
MagentoBridge2.MS.catalogProductReturnEntity
Member of MagentoBridge2.MS.Mage_Api_Model_Server_V2_HandlerPortType
不接受一系列产品..
那么在.NET中如何使用PHP中使用的multiCall
?
答案 0 :(得分:2)
你需要在magento服务器的根目录下放一个PHP文件,看起来像这样吗
<?php
$id_start = $_GET['start'];
$id_end = $_GET['end'];
// Magento login information
$mage_url = 'http://www.YOURSITE.co.uk/api/?wsdl=1';
$mage_user = 'USERNAME';
$mage_api_key = 'PASSWORD';
// Initialize the SOAP client
$soap = new SoapClient( $mage_url );
// Login to Magento
$session_id = $soap->login( $mage_user, $mage_api_key );
$calls = array();
for ($id_start; $id_start <= $id_end; $id_start++)
{
array_push($calls, array( 'catalog_product.info', $id_start ));
}
$results = $soap->multiCall( $session_id, $calls );
echo json_encode($results);
?>
右键! Simples !!!!!!!!!!!!然后在.NET中你有一个很好的功能!
Function getHTTPStream() As String
Dim myh As HttpWebRequest = HttpWebRequest.Create("http://www.YOURSITE.co.uk/prod.php?start=20&end=80")
myh.Timeout = 30000
myh.UserAgent = "Test"
Dim myR As HttpWebResponse = myh.GetResponse()
Dim myEnc As Encoding = Encoding.GetEncoding(1252)
Dim mySr As StreamReader = New StreamReader(myR.GetResponseStream(), myEnc)
Return mySr.ReadToEnd()
End Function
注意我通过start=20
;这是它将从end=80
现在你需要在.NET中做的就是将JSON转换为表格...例如使用THIS 你知道吗!我现在可以在Visual Studio Freaking .NET中请求关于每秒约100个产品的项目的完整扩展信息! Whoooooooooohoooooooooo !! 之前我花了3个产品在多线程请求中进行单独调用..这有什么改进。
感谢每个人的帮助。 (远处的蟋蟀)