Python Mouser Cart API请求

Python Mouser Cart API请求,python,Python,我不知道是否要在这里发布它,但我正在尝试使用python请求Mouser Cart API和suds库 def updateCart(): url = "https://mews.mouser.com/cartservice.asmx?op=UpdateCart&wsdl" client = Client(url) xmlns = Attribute("xmlns", "http://tempuri.org/XMLSchema.xsd") xmlnsXSD = Attribute("xm

我不知道是否要在这里发布它,但我正在尝试使用python请求Mouser Cart API和suds库

def updateCart():
url = "https://mews.mouser.com/cartservice.asmx?op=UpdateCart&wsdl"
client = Client(url)
xmlns = Attribute("xmlns", "http://tempuri.org/XMLSchema.xsd")
xmlnsXSD = Attribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema")
xmlnsXSI = Attribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
cartGUID = Attribute("CartGUID", "")
requestor = Attribute("Requestor", "richeve")

cartMessage = Element("CartMessage") \
    .append(xmlns) \
    .append(xmlnsXSD) \
    .append(xmlnsXSI) \
    .append(cartGUID)\
    .append(requestor)

partNumber = Attribute("MouserPartNumber", "941-CCS050M12CM2")
quantity = Attribute("Quantity", "5")
cartItem = Element("CartItem").append(partNumber).append(quantity)

cartMessage.append(cartItem)

xmlCartMessage = Element("xmlCartMessage").append(cartMessage)

result = client.service.UpdateCart(xmlCartMessage)
print result
print client
return True
问题是我总是让操作超时。我不知道他们的API或服务器是否出现故障。或者我的代码中缺少了一些东西。

我刚刚参加了python Mouser cart API之战,并在今天获胜。这是我学到的

  • 超时是由WSDL底部的不正确端点引起的。它指定了端口9001,但在那里没有任何侦听。重写suds客户端位置以删除端口规范使其工作

    url = 'https://mews.mouser.com/cartservice.asmx?WSDL'
    location = 'https://mews.mouser.com/cartservice.asmx'
    client = Client(url, location=location, cache=None)
    
  • client.service.UpdateCart()需要一个字符串XML文档。这就是我的工作原理:

    xmlCartMessage = Document()
    xmlCartMessage.append(cartMessage)
    result = client.service.UpdateCart(xmlCartMessage.plain())
    
  • Mouser的响应也是text-a
    suds.sax.text.text
    XML片段。有关此行为的描述,请参见。我过去常常把它编成一份口述

    import xmltodict
    d = xmltodict.parse(result)