Python оставшийся клиент для типа formData - PullRequest
0 голосов
/ 26 марта 2020

Я пишу клиент покоя на pytho с запросом api

На сервере покоя есть api rest для загрузки файла, он принимает два параметра -

file - фактический файл и его тип formData

fileName - имя файла в строке и его тип также formData

Я использую приведенный ниже код

file = f = open('C:/tmp/test.txt', 'rb')
headers={'content-type':'multipart/form-data'}
r = requests.post(url+'/rest/2.0/process?'+file=f&fileName='test.txt'

, но почему-то он не работает, может кто-нибудь помочь где он нуждается в исправлении

соответствующий метод сервера покоя

@POST
@Consumes({"multipart/form-data"})
@TypeHint(Test.class)
public Response deployTestDefinition(@FormDataParam("file") InputStream file, 
@FormDataParam("fileName") String fileName) {

мой текущий запрос похож на ниже:

    f = open('C:/tmp/Test.txt', 'rb')
    files = {'file' : ('Test.txt', f), 'fileName':'Test.txt'}
    headers={'content-type':'multipart/form-data'}
    r = requests.post(url+'/rest/2.0/process',files=files,headers=headers,cookies=token,verify=False)

, но все еще не работает статус 400

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Похоже, что вы загружаете файл неправильно. Согласно запрашивает документацию :

url = 'https://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)

Вам необходимо указать параметр files и поместить экземпляр f в этот словарь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...