Как мне позвонить посту api в запросах python? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть API, который принимает три параметра, два - строки, а третий - файл с именем "content".

from datetime import date

AuthToken = "xxxxxxxxxxx"
fileName = "a.txt"
FolderID = "xxxxxxxxxxx"
myfiles = {'file': ('report.xls', open('C:\\Users\\Nawaf Momin\\Desktop\\a.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
URL = "https://apidocs.zoho.com/files/v1/upload?authtoken=" + AuthToken + "&scope=docsapi"
mydata = {
    'filename': fileName,
    'fid': FolderID,
    'content': myfiles
}
r = requests.post(url=URL, data=mydata)
print(r.status_code)
print(r.text)

для посещения документации API: https://www.zoho.com/docs/zoho-docs-api.html его загрузить сообщение api ..

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Я решил это. myfiles = {'file': ('report.xls', open('C:\\Users\\Nawaf Momin\\Desktop\\a.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})} здесь я отправил parameter_name вместо file. так что теперь это выглядит как myfiles = {'parametername': ('report.xls', open('pathToFile', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}

0 голосов
/ 20 февраля 2020

Вы не указали ошибку, которую получаете, поэтому я предполагаю, что содержимое файла не отображается. Вы, вероятно, должны поместить содержимое файла отдельно и добавить к нему заголовки, также вам нужно установить и импортировать библиотеку запросов, поскольку она не встроена.

from datetime import date
import requests

headers = {
"User-Agent":"Mozilla/5.0" #you will need to complete this user agent yourself
}

AuthToken = "xxxxxxxxxxx"
fileName = "a.txt"
FolderID = "xxxxxxxxxxx"
myfiles = {'file': ('report.xls', open('C:\\Users\\Nawaf Momin\\Desktop\\a.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
URL = "https://apidocs.zoho.com/files/v1/upload

params = {
authtoken":AuthToken,
"scope":"docsapi"
}

r = requests.post(url=URL,  params=params, files=myfile, headers=headers)
print(r.status_code)
print(r.text)

Надеюсь, это помогло

...