PDF в Python Запрос - PullRequest
       43

PDF в Python Запрос

0 голосов
/ 23 октября 2018

У меня проблема с отправкой pdf-сообщения в Python.Мой сервер поддерживает только «данные формы», а не JSON

Вот мой код:

import requests
from requests.auth import HTTPBasicAuth
import os
import json

url = "myUrl"
files ={'fileUpload': open(os.path.join('_my_path', 'my_file.pdf'), 'rb')}
payload = "--my_boundary\r\nContent-Disposition: form-data; name=\"integrationClass\"\r\n\r\nBPMOnline\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"SITE\"\r\n\r\n21218\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"PROCESS_NAME\"\r\n\r\ncreate\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"DOCUMENT_ID\"\r\n\r\ndoc bpmonline create\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"DOCUMENT_TYPE\"\r\n\r\nsample\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"CLIENT_NAME\"\r\n\r\ncname\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"CLIENT_ID\"\r\n\r\n45678\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"USER\"\r\n\r\nadmin\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"fileUpload\"; filename=\"download.pdf\"\r\nContent-Type: application/pdf\r\n\r\n\r\n--my_boundary\r\nContent-Disposition: form-data; name=\"uuid\"\r\n\r\n\r\n--my_boundary--"
headers = {
    'content-type': "multipart/form-data; boundary=my_boundary",
    'cache-control': "no-cache",
    }

response = requests.post(url, data=payload,files=files, headers=headers)

print(response.text)

ОШИБКА: "ValueError: Data must not be a string."

1 Ответ

0 голосов
/ 23 октября 2018

Я не думаю, что вы можете отправлять как данные, так и файлы в многочастном кодированном файле, поэтому вы можете попытаться также сделать свои данные "файлом".Как то так:

files = {
'data' : data,
'document': open('file_name.pdf', 'rb')
}

headers = {
'Accept': "application/pdf",
'Content-Type': "multipart/form-data",
'Cache-Control': "no-cache",
}

r = requests.post(url, files=files, headers=headers)
...