从向 Ebay 发布交易 API 调用请求仅获得响应 [200]
Getting only Response [200] from posting Trading API call request to Ebay
我可以 post 交易 API 通过使用 Python SDK(使用 JSON 代码)或通过 API 资源管理器调用 AddItem [=13] =](使用我在下面的 Python 请求库中使用的相同 XML 文件中的相同 XML 代码)并像往常一样得到一些响应。
但是,当我尝试通过使用 xml 文件调用 Python 请求库来执行此操作时,我没有得到任何响应,而是得到了 。有人可以看看我下面的代码,看看我如何修复它并从 Ebay 获得正常响应吗?
代码:
import requests
# Set the name of the XML file.
xml_file = XML_FILE
headers = {'Content-Type':'text/xml', "X-EBAY-API-SITEID": "0",
"X-EBAY-API-COMPATIBILITY-LEVEL": "967",
"X-EBAY-API-CALL-NAME":"AddItem"}
# Open the XML file.
with open(xml_file) as xml:
r = requests.post('https://api.ebay.com/ws/api.dll', data=xml, headers=headers)
print(r)
我的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<AddItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>TOKEN</eBayAuthToken>
</RequesterCredentials>
<ErrorLanguage>en_US</ErrorLanguage>
<WarningLevel>High</WarningLevel>
<Item>
<Title>Harry Potter and the Philosopher's Stone</Title>
<Description>
This is the first book in the Harry Potter series. In excellent condition!
</Description>
<PrimaryCategory>
<CategoryID>29223</CategoryID>
</PrimaryCategory>
<StartPrice>1.0</StartPrice>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>US</Country>
<Currency>USD</Currency>
<PaymentMethods>CreditCard</PaymentMethods>
<DispatchTimeMax>3</DispatchTimeMax>
<ListingDuration>Days_7</ListingDuration>
<ListingType>Chinese</ListingType>
<PictureDetails>
<PictureURL>https://mysamplepicture.com/14.jpg</PictureURL>
</PictureDetails>
<PostalCode>95125</PostalCode>
<Quantity>1</Quantity>
<ItemSpecifics>
<NameValueList>
<Name>Title</Name>
<Value>Harry Potter and the Philosophers Stone</Value>
</NameValueList>
<NameValueList>
<Name>Publisher</Name>
<Value>Smashwords</Value>
</NameValueList>
<NameValueList>
<Name>Author</Name>
<Value>JK Rowling</Value>
</NameValueList>
<NameValueList>
<Name>Language</Name>
<Value>English</Value>
</NameValueList>
</ItemSpecifics>
<ReturnPolicy>
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
<RefundOption>MoneyBack</RefundOption>
<ReturnsWithinOption>Days_30</ReturnsWithinOption>
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
</ReturnPolicy>
<ShippingDetails>
<ShippingType>Flat</ShippingType>
<ShippingServiceOptions>
<ShippingServicePriority>1</ShippingServicePriority>
<ShippingService>USPSMedia</ShippingService>
<ShippingServiceCost>2.50</ShippingServiceCost>
</ShippingServiceOptions>
</ShippingDetails>
<Site>US</Site>
</Item>
</AddItemRequest>
您似乎对 requests
模块很陌生。只需阅读 docs,hello world 示例将解决您的问题。
我们经常使用 r.text
表示文本,r.content
表示二进制,r.json
表示 json。 r.status_code
和 r.reason
用于异常调试。
我可以 post 交易 API 通过使用 Python SDK(使用 JSON 代码)或通过 API 资源管理器调用 AddItem [=13] =](使用我在下面的 Python 请求库中使用的相同 XML 文件中的相同 XML 代码)并像往常一样得到一些响应。
但是,当我尝试通过使用 xml 文件调用 Python 请求库来执行此操作时,我没有得到任何响应,而是得到了
代码:
import requests
# Set the name of the XML file.
xml_file = XML_FILE
headers = {'Content-Type':'text/xml', "X-EBAY-API-SITEID": "0",
"X-EBAY-API-COMPATIBILITY-LEVEL": "967",
"X-EBAY-API-CALL-NAME":"AddItem"}
# Open the XML file.
with open(xml_file) as xml:
r = requests.post('https://api.ebay.com/ws/api.dll', data=xml, headers=headers)
print(r)
我的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<AddItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>TOKEN</eBayAuthToken>
</RequesterCredentials>
<ErrorLanguage>en_US</ErrorLanguage>
<WarningLevel>High</WarningLevel>
<Item>
<Title>Harry Potter and the Philosopher's Stone</Title>
<Description>
This is the first book in the Harry Potter series. In excellent condition!
</Description>
<PrimaryCategory>
<CategoryID>29223</CategoryID>
</PrimaryCategory>
<StartPrice>1.0</StartPrice>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>US</Country>
<Currency>USD</Currency>
<PaymentMethods>CreditCard</PaymentMethods>
<DispatchTimeMax>3</DispatchTimeMax>
<ListingDuration>Days_7</ListingDuration>
<ListingType>Chinese</ListingType>
<PictureDetails>
<PictureURL>https://mysamplepicture.com/14.jpg</PictureURL>
</PictureDetails>
<PostalCode>95125</PostalCode>
<Quantity>1</Quantity>
<ItemSpecifics>
<NameValueList>
<Name>Title</Name>
<Value>Harry Potter and the Philosophers Stone</Value>
</NameValueList>
<NameValueList>
<Name>Publisher</Name>
<Value>Smashwords</Value>
</NameValueList>
<NameValueList>
<Name>Author</Name>
<Value>JK Rowling</Value>
</NameValueList>
<NameValueList>
<Name>Language</Name>
<Value>English</Value>
</NameValueList>
</ItemSpecifics>
<ReturnPolicy>
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
<RefundOption>MoneyBack</RefundOption>
<ReturnsWithinOption>Days_30</ReturnsWithinOption>
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
</ReturnPolicy>
<ShippingDetails>
<ShippingType>Flat</ShippingType>
<ShippingServiceOptions>
<ShippingServicePriority>1</ShippingServicePriority>
<ShippingService>USPSMedia</ShippingService>
<ShippingServiceCost>2.50</ShippingServiceCost>
</ShippingServiceOptions>
</ShippingDetails>
<Site>US</Site>
</Item>
</AddItemRequest>
您似乎对 requests
模块很陌生。只需阅读 docs,hello world 示例将解决您的问题。
我们经常使用 r.text
表示文本,r.content
表示二进制,r.json
表示 json。 r.status_code
和 r.reason
用于异常调试。