2017-09-05 1 views
0

Je travaille sur un projet où plusieurs paramètres de formulaire doivent être spécifiés, dont un est le fichier lui-même.Comment envoyer plusieurs paramètres de formulaire dans la requête?

Ce que j'ai essayé:

import requests 
REST_URL = 'http://192.168.150.138:8888/tasks/create/file' 
with open(os.path.join('/home/default/Batch/Samples/', filename),'rb') as sample: 
      files = {'file' :("temp_file_name" , sample)} 
      r = requests.post(REST_URL , files=files) 

Problème:

Je dois transmettre les informations supplémentaires comme celui-ci (Tous ces éléments sont des paramètres de formulaire)

file (required) - sample file (multipart encoded file content) 
package (optional) - analysis package to be used for the analysis 
timeout (optional) (int) - analysis timeout (in seconds) 
priority (optional) (int) - priority to assign to the task (1-3) 
options (optional) - options to pass to the analysis package 
machine (optional) - label of the analysis machine to use for the analysis 
platform (optional) - name of the platform to select the analysis machine from (e.g. “windows”) 

Supposons que si Je veux envoyer le nom de la machine aussi dans le formulaire puis-je créer comme ça?

data = {'machine' :'machine_name'} 
r =requests.post(EST_URL , files=files,data=data) 

Toutes les suggestions vous seront utiles.

+0

Oui, des demandes d'importation –

+0

@ das-g Type corrigé –

Répondre

0

Question: Supposons que si je veux envoyer le nom de la machine également sous la forme que je peux créer comme ça?


Demande Quickstart More complicated POST requests

Si vous voulez tester requests paramètre vous pouvez exécuter les éléments suivants:

import requests, io 
url = 'http://httpbin.org/anything' 

sample = io.StringIO('lorem ipsum') 
files = {'file': ("temp_file_name", sample)} 
data = {'machine': 'machine_name'} 
r = requests.post(url, data=data, files=files) 

r_dict = r.json() 
for key in r_dict: 
    print('{}:{}'.format(key, r_dict[key])) 

Sortie:

json:None 
headers:{'Connection': 'close', 'Content-Length': '261', 'User-Agent': 'python-requests/2.11.1', 'Content-Type': 'multipart/form-data; boundary=5ed95afb5ea2437eade92a826b29be0d', 'Host': 'httpbin.org', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*'} 
data: 
args:{} 
files:{'file': 'lorem ipsum'} 
method:POST 
url:http://httpbin.org/anything 
form:{'machine': 'machine_name'} 

Voir http://httpbin.org, il y a beaucoup d'autres points d'extrémité url vous pouvez tester.

testé avec Python: 3.4.2