2013-06-11 2 views
0

Есть ли простой способ загрузить один файл с помощью Python?
Я знаю о requests, но это POST-файл, содержащий один файл, поэтому у нас есть небольшая проблема с получением этого файла на другом конце.POST-файл в Python

В настоящее время код отправки этот файл:

def sendFileToWebService(filename, subpage): 
    error = None 
    files = {'file': open(filename, 'rb')} 
    try: 
     response = requests.post(WEBSERVICE_IP + subpage, files=files) 
     data = json.load(response) 
(...) 

И проблема в том, что requests посылает каждый файл в

--7163947ad8b44c91adaddbd22414aff8 
Content-Disposition: form-data; name="file"; filename="filename.txt" 
Content-Type: text/plain 


<beggining of file content> 
(...) 
<end of file content> 
--7163947ad8b44c91adaddbd22414aff8-- 

Я полагаю, что это пакет для файла. Есть ли способ отправить файл «clear»?

ответ

2

Используйте параметр data для запросов, а не files параметра:

def sendFileToWebService(filename, subpage): 
    error = None 
    try: 
     response = requests.post(WEBSERVICE_IP + subpage, 
           data=open(filename, 'rb')) 
     data = json.load(response) 
(...) 

Это заставит содержимое файла будет помещено в теле запроса HTTP. Указание параметра files вызывает запросы для переключения на multipart/form-data.