Max*_*ges 6 vb.net api magento
Magento有一个API,似乎有些人通过VB.NET使用它,但我尝试了很长时间后无法让它工作.
我正在使用Magento 1.7.0.2试图让一个使用API的VB.NET应用程序.我正在使用符合WS-I的Web服务设置.
错误1自定义工具错误:无法导入WebService/Schema.无法从命名空间'urn:Magento'导入绑定'Mage_Api_Model_Server_Wsi_HandlerBinding'.来自命名空间'urn:Magento'的portType'Mage_Api_Model_Server_Wsi_HandlerPortType'上的'catalogProductAttributeRemove'操作具有以下语法错误:该操作没有匹配的绑定.检查Binding部分中的操作,输入和输出名称是否与PortType部分中的相应名称匹配.d:\ Documents\Visual Studio 2010\Projects\Mage\Mage\My Project\Settings.settings 1 1 Mage
如果我尝试将其添加为服务引用(而不是Web引用),我会得到一组不同的错误.
无法导入wsdl:binding无法导入wsdl:port无法导入wsdl:portType
错误5自定义工具错误:无法为服务引用"ServiceReference1"生成代码.有关详细信息,请查看其他错误和警告消息.d:\ Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
警告3自定义工具警告:无法导入wsdl:binding详细信息:导入wsdl:binding依赖的wsdl:portType时出错.XPath到wsdl:portType:// wsdl:definitions [@ targetNamespace ='urn:Magento']/wsdl:portType [@ name ='Mage_Api_Model_Server_Wsi_HandlerPortType'] XPath到错误源:// wsdl:definitions [@ targetNamespace ='urn: Magento']/wsdl:binding [@ name ='Mage_Api_Model_Server_Wsi_HandlerBinding'] d:\ Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1 Mage
警告4自定义工具警告:无法导入wsdl:port详细信息:导入wsdl:port依赖的wsdl:binding时出错.XPath to wsdl:binding:// wsdl:definitions [@ targetNamespace ='urn:Magento']/wsdl:binding [@ name ='Mage_Api_Model_Server_Wsi_HandlerBinding'] XPath to Error Source:// wsdl:definitions [@ targetNamespace ='urn: Magento']/wsdl:service [@ name ='MagentoService']/wsdl:port [@ name ='Mage_Api_Model_Server_Wsi_HandlerPort'] d:\ Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1法师
警告2自定义工具警告:无法导入wsdl:portType详细信息:运行WSDL导入扩展时引发异常:System.ServiceModel.Description.XmlSerializerMessageContractImporter错误:命名空间urn中名为catalogProductAttributeRemoveRequest的元素消息:Magento丢失.XPath到错误源:// wsdl:definitions [@ targetNamespace ='urn:Magento']/wsdl:portType [@ name ='Mage_Api_Model_Server_Wsi_HandlerPortType'] d:\ Documents\Visual Studio 2010\Projects\Mage\Mage\Service References\ServiceReference1\Reference.svcmap 1 1法师
有人可以给我非常明确的指令/代码如何拨打电话并获得结果吗?我甚至无法获得正确的初始配置.我已经下载了其他人在网上提供的一些代码,但是如果不起作用 - 可能是因为它是针对早期版本的.
Function getHTTPStream() As String
Dim myh As HttpWebRequest = _
HttpWebRequest.Create("http://yourmagentoweb/soap/api/?wsdl")
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
Run Code Online (Sandbox Code Playgroud)
该代码显然需要调整 - 我没有时间来美化这些东西
来自Abid Hussain的链接
1.使用wdsl工具我通过调用以下方法创建了一个.vb源文件:
wsdl/language:VB /out:MageProxyClass.vb http:/// api/v2_soap?wsdl
2.之后我使用VB Comand Line Editor将源文件编译成dll.
vbc /out:MageProxyClass.dll/t:library /r:System.XML.dll,System.Web.Services.dll MageProxyClass.vb
3.最后,我能够创建在MageProxyClass.dll中定义的MagentoService类的实例
Private WithEvents msvc As New MagentoService()
Run Code Online (Sandbox Code Playgroud)
4.示例:
Public Class main
Private WithEvents msvc As New MagentoService()
Private ssid As String
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
ListBox1.Items.Add("Trying to connect")
msvc.loginAsync("xxxx", "xxxxxxxxxxxxxxxx")
End Sub
Public Sub MageLoginComplete(ByVal sender As System.Object, ByVal e As loginCompletedEventArgs) Handles msvc.loginCompleted
ListBox1.Items.Add("Login completed")
ssid = e.Result
ListBox1.Items.Add(String.Concat("Session ID: ", ssid))
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)