Я использую Python 2.7.Мой серверный API-интерфейс Rest работает нормально, и я могу загрузить ZIP-файл с помощью Postman.Я пытаюсь загрузить ZIP-файл с помощью API-интерфейса Rest client.Я попробовал пакет запросов, но он не может отправить файлы.Я получаю сообщение об ошибке: отсутствует аргумент файла.
Это мой код на стороне python-сервера:
@ns.route('/upload_file', strict_slashes=False)
class Upload(Resource):
@api.expect(upload_parser)
def post(self):
args = upload_parser.parse_args()
file_nameup = args.file.filename
Вот код оставшегося API клиента:
import requests
from requests.auth import HTTPBasicAuth
import json
headers={'Username': 'abc@gmail.com', 'apikey':'123-e01b', 'Content-Type':'application/zip'}
f = open('C:/Users/ADMIN/Downloads/abc.zip', 'rb')
files = {"file": f}
resp = requests.post("https://.../analytics/upload_file", files=files, headers=headers )
print resp.text
print "status code " + str(resp.status_code)
if resp.status_code == 200:
print ("Success")
print resp.json()
else:
print ("Failure")
Это моя ошибка: {"message":«Ошибка проверки входных данных», «error»: {«file»: «Отсутствует обязательный параметр в загруженном файле»} код состояния 400 Failure
В почтальоне я передал zip-файл с текстом «file»"как ключ и значение как файл abc.zip.Работало нормально.Я пытался использовать библиотеку httplib, но она не удалась, так как мой почтовый URL не содержит номера порта.Это ошибка с httplib:
python HttpClientEx.py Traceback (последний вызов был последним): файл "HttpClientEx.py", строка 4, в файле h = http.client.HTTPConnection (url) "c: \ python27 \ Lib \ httplib.py ", строка 736, в init (self.host, self.port) = self._get_hostport (host, port) Файл" c: \ python27 \ Lib \httplib.py ", строка 777, в _get_hostport повысить InvalidURL (" нечисловой порт: '% s' "% host [i + 1:]) httplib.InvalidURL: нечисловой порт: '// .... net / analytics / upload_file'
Как вызвать пост остальных URL и загрузить файл с помощью библиотеки urllib.Пожалуйста, предложите любые другие способы загрузки файла в остальных клиентах.Благодарю.
Я нашел еще один повторяющийся пост:
Запросы Python - отправка zip-файла с multipart / form-data
Упомянутое там решение не сработало,Я обнаружил, что вам нужно указать полный путь к файлу, иначе он не будет работать.