#python #python-requests #parse-server #back4app
#python #python-запросы #сервер синтаксического анализа #back4app
Вопрос:
Я пытаюсь создать объект с помощью back4app
класса for sound
проблема, с которой я сталкиваюсь, заключается в том, что я не могу загрузить файл.
используемый код:
import requests
headers = {
"X-Parse-Application-Id": "hidden",
"X-Parse-REST-API-Key": "hidden",
}
data = {
"audio": {
"__type": open("a.mp3", 'rb'),
"name": "a.mp3"
},
"displayText": "test"
}
def main(url):
with requests.Session() as req:
req.headers.update(headers)
r = req.post(url, data=data)
print(r.text)
main("https://parseapi.back4app.com/classes/sounds")
Вывод:
{"code":111,"error":"schema mismatch for sounds.audio; expected File but got Array"}
Ответ №1:
Сначала вам нужно загрузить файл:
import json,httplib
connection = httplib.HTTPSConnection('parseapi.back4app.com', 443)
connection.connect()
connection.request('POST', '/files/a.mp3', open('a.mp3', 'rb').read(), {
"X-Parse-Application-Id": "${APPLICATION_ID}",
"X-Parse-REST-API-Key": "${REST_API_KEY}",
"Content-Type": "audio/mpeg"
})
result = json.loads(connection.getresponse().read())
Затем создайте объект:
connection.request('POST', '/classes/sounds', json.dumps({
"displayText": "test",
"audio": {
"name": result["name"],
"url:": result["url"],
"__type": "File"
}
}), {
"X-Parse-Application-Id": "${APPLICATION_ID}",
"X-Parse-REST-API-Key": "${REST_API_KEY}",
"Content-Type": "application/json"
})
connection.getresponse().read()
Комментарии:
1. Большое вам за это спасибо. я пытался связаться с вами по электронной почте поддержки. мне просто интересно, почему вы еще не поддерживали Python. я просто собирался использовать ParsePy . теперь я понял суть. еще раз спасибо
2. я только что попробовал ваше решение сейчас. проверьте онлайн , но похоже, что это неверно.
3. Не могли бы вы попробовать точно закодированный, который я опубликовал выше? Я только что попробовал, и он работает довольно хорошо. Я использую
httplib
вместоhttp.client
.http.client
также должно работать, но я считаю, что запрос необходимо соответствующим образом изменить.