Witam
Mam problem z wysłaniem pliku metodą PUT. Za każdym razem serwer zgłasza błąd lub odrzuca mojego requesta.
Na początku robiłem to tak:
self.send_put('/api/license', files={'file': 'Licencja'})
serwer zgłasza mi takie coś:
{'request_body': b'--236c7ae1fadb25d54beae19def523219\r\nContent-Disposition:'
b' form-data; name="file"; filename="file"\r\n\r\nLicencja'
b'\r\n--236c7ae1fadb25d54beae19def523219--\r\n',
'request_headers': {'User-Agent': 'python-requests/2.25.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '159', 'Content-Type': 'multipart/form-data; boundary=236c7ae1fadb25d54beae19def523219'},
'request_method': 'PUT',
'request_url': 'http://xx.xx.xx.xx/api/license',
'response_code': 500,
'response_content': '{"message":"ReadingFileFailed"}'}
Następnie spróbowałem z parametrem data=''; tak samo.
Kolejne podejście to:
with open('Licencja', 'rb') as data:
self.send_put('/api/license', data=data)
serwer odpowiada:
{'request_body': <_io.BufferedReader name='Licencja'>,
'request_headers': {'User-Agent': 'python-requests/2.25.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '1408'},
'request_method': 'PUT',
'request_url': 'http://xx.xx.xx.xx/api/license',
'response_code': 400,
'response_content': '{"message":"IncorrectInput"}'}
Szukam różnych rozwiązań i żadne mi nie działa. Dodam że postmanem jest wstanie wysłać prawidłowo plik. Oznacza to że to ja robię coś źle tylko nie jestem wstanie dostrzec co robię źle.
Jak prawidłowo i skutecznie wysłać plik za pomocą metody put do REST API ?