2015-09-15 5 views
3

Я хочу, чтобы преобразовать этот Curl запрос на запрос Python-запросы, так как я работаю на обертке Python для службы RESTПреобразование Curl запроса на Python-запросы запрашивать

MS_WORD_DOCUMENT=... 
CONTENT_TYPE="application/msword" 

JSON_REQUEST="{\"documentType\" : \"$CONTENT_TYPE\"}" 

curl -X POST -F "meta=$JSON_REQUEST;type=application/json" -F "[email protected]$MS_WORD_DOCUMENT" $SERVICE_ENDPOINT 

Как я могу преобразовать это Python3 запрашивает библиотечный запрос?

До сих пор я получил

data = {"metadata": {"documentType": "application/msword", 
        "Content-Type": "application/json"}} 

req = requests.post(
    "https://text.s4.ontotext.com/v1/twitie", 
    auth=("user", "pass"), 
    headers={"Content-Type": "multipart/mixed"}, 
    data=data, 
    files={"file": ("sample.docx", content, 
        "application/octet-stream")}) 

Я не знаю, если это так, чтобы обрабатывать многокомпонентные запросы типа с запросами

ответ

3

локонов команда посылает специфические multipart/form-data имена полей; meta и data, а documentation for the API указывает конкретные типы метаданных, которые будут использоваться.

Кроме того, метаданные должны быть закодированы в JSON.

должно работать:

import json 
import requests 

metadata = json.dumps({"documentType": "application/msword"}) 
files = { 
    'meta': ('', metadata, 'application/json'), 
    'data': ('sample.docx', content, 'application/octet-stream'), 
} 

req = requests.post(
    "https://text.s4.ontotext.com/v1/twitie", 
    auth=("user", "pass"), 
    files=files) 

Параметр files это все, что нужно здесь; каждое значение представляет собой кортеж с именем файла, отправляемыми данными и типом mimetype для этой части.

+0

Да. Это прекрасно работает. Благодаря! –

1

Один хороший ресурс, который я использовал для преобразования запроса cURL на запросы Python, - curlconverter. Вы можете ввести свой запрос cURL и отформатировать его для Python requests.

В качестве побочного примечания он также может конвертировать для PHP и Node.js.

Смежные вопросы