Отправка изображения на сервер requests
Необходимо отправить запрос на сервер с изображением.
Эти данные я получил с отладчика бразуера:
Request Headers:
Host: findclone.ru
Connection: keep-alive
Content-Length: 110679
user-id: 79270071861
Accept: application/json
Cache-Control: no-cache
X-Requested-With: XMLHttpRequest
session-key: 3sqfceiwol7smustpbvhp4fne3mzyjf35lz2qliui2v6urix47vo246ek5yqshhb
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymE1qoy2fzhFuRnkG
Origin: https://findclone.ru
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://findclone.ru/searchclone
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: _ym_d=1586797352; _ym_uid=1586797352672066265; _ym_isad=2; period=20%20%D0%B4%D0%BD%D0%B5%D0%B9; quantity=42%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0; _ym_visorc_53111767=w; session-key=3sqfceiwol7smustpbvhp4fne3mzyjf35lz2qliui2v6urix47vo246ek5yqshhb; user-id=79270071861
Form Data:
------WebKitFormBoundarymE1qoy2fzhFuRnkG
Content-Disposition: form-data; name="uploaded_photo"; filename="Screenshot_9.png"
Content-Type: image/png
------WebKitFormBoundarymE1qoy2fzhFuRnkG--
Вот мой код:
import requests
class FindCloneAPI():
session = requests.Session()
session_key = ''
user_id = ''
def login(self, phone, pwd):
url = 'https://findclone.ru/login'
data = {'phone': phone, 'password': pwd}
req = self.session.post(url, data=data).json()
self.session_key = req['session_key']
self.user_id = req['userid']
print(self.session.cookies)
def upload(self, path_to_image):
url = 'https://findclone.ru/upload2'
files = {'photo': open(path_to_image, 'rb')}
headers = {
'user-id': str(self.user_id),
'session-key': self.session_key,
}
req = self.session.post(url, files=files, headers=headers)
print(req.text)
print(req.status_code)
FAPI = FindCloneAPI()
FAPI.login('ТУТ ЛОГИН', 'ТУТ ПАРОЛЬ')
print(FAPI.user_id)
print(FAPI.session_key)
FAPI.upload('img.png')
Вот что я получаю на выходе:
79270071861
kk3w5u7rl27oaraddxt3xaivlbbwtuq546la6e3yqup7hdqcay3ntmgar24qtajf
{"Error":"Upload_photo"}
406
Process finished with exit code 0
Ответы (1 шт):
Автор решения: user348484
→ Ссылка
Решение было простым.
files = {'uploaded_photo': ("test.png", open('img.png', 'rb'), "image/png")}
скоро залью API на гитхаб. Если забуду прикрепить ссылку, пните @whomLZT