gpt4 book ai didi

python - 贸泽购物车 API 请求

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:28 26 4
gpt4 key购买 nike

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

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 购物车 API 之战,今天赢了。这是我学到的。

  1. 超时是由 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)
  2. client.service.UpdateCart() 需要一个 string XML 文档。这对我有用:

    xmlCartMessage = Document()
    xmlCartMessage.append(cartMessage)
    result = client.service.UpdateCart(xmlCartMessage.plain())
  3. Mouser 的响应也是文本 — suds.sax.text.Text XML 片段。参见 https://lists.fedoraproject.org/pipermail/suds/2011-October/001537.html有关此行为的描述。我用了https://github.com/martinblech/xmltodict将其整理成字典。

    import xmltodict
    d = xmltodict.parse(result)

关于python - 贸泽购物车 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com