简体   繁体   中英

Getting only Response [200] from posting Trading API call request to Ebay

I can post Trading API AddItem call through using Python SDK (using JSON code) or through the API explorer on https://developer.ebay.com/ (using the same XML codes from the same XML file I used with the Python requests library below) and gets some response as usual.

However, when I tried to do so by calling through Python requests library with an xml file, I got no response and instead got <Response [200]>. Could someone pls take a look at my code below and see how I can fix it and get the normal response from Ebay?

Code:


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)

My XML file:


<?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>

You seem to be very new to requests module. Just read the docs and the hello world example will solve your problem.

We often use r.text for text, r.content for binary, r.json for json. r.status_code and r.reason for exception debugging.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM