Skip to Content
1

Need Python 3 code snippet to call SAP Leonardo ML ReST API prodimgclassifier

Sep 14, 2017 at 03:54 PM

177

avatar image
Former Member

Here's my NON-WORKING version using Python library requests.

import requests
import json
import logging

try:
    import http.client as http_client
except ImportError:
    # Python 2
    import httplib as http_client
http_client.HTTPConnection.debuglevel = 1

# You must initialize logging, otherwise you'll not see debug output.
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

headers = {'APIKey': 'your API Key',
           'Accept': 'application/json',
           'Content-Type': 'multipart/form-data'}

params = {'files' : 'Desert.jpeg'}
data = {'files' : 'Desert.jpg'} #  url encoded
# data = json.dumps(data) # flat
files = {'files' : open('Desert.jpg', 'rb')}

r = requests.post("https://sandbox.api.sap.com/ml/prodimgclassifier/inference_sync",
                  # params=params,
                  # data=data,
                  headers=headers,
                  files=files)
print('\n------------------\n')
print(r.text)

Response is:

"error_description": "This service requires at least 1 file. Please put your file(s) into the `fil
es` field of the POST request",
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Best Answer
avatar image
Former Member
Sep 18, 2017 at 11:29 AM
3

Hi Auro,

If you get rid of the 'Content-Type':'multipart/form-data' in the header it should work:

import requests
url = "https://sandbox.api.sap.com/ml/prodimgclassifier/inference_sync"
headers = {'APIKey': <your_API_key>, 'Accept': 'application/json'}
files = {'files': open('desert.jpg', 'rb')}
response = requests.post(url, files=files, headers=headers)
print(response.text)
Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Sep 21, 2017 at 04:48 AM
0

Works! Thank you, @

Christian Mathias Mueller

Share
10 |10000 characters needed characters left characters exceeded