如何将curl命令更改为python的请求格式

时间:2017-10-18 04:52:05

标签: python curl

我成功验证了我的图像是通过curl发送到服务器的 但是,我想导入Python语言请求模块 我的代码看起来像这样 谢谢你的帮助

卷曲

curl -X POST --header 'x-user-token: [Token]' --header 'x-user-email: [Email]' -H 'Cache-Control: no-cache'  -H 'Content-Type: multipart/form-data' -F 'note[message]=hello' -F 'note[image]=@HelloWolrd.jpg' http://[URL]

的Python

URL = "[URL]"
EMAIL = "[Email]"
TOKEN = "[Token]"
headers = {'Cache-Control': 'no-cache',
'Content-Type': 'application/json; multipart/form-data',
'x-user-token': TOKEN,
'x-user-email': EMAIL}

data = {
'message': "Hello"
}
res = requests.post(URL, files={'image': open("[file_name].jpg", "rb")}, headers=headers)

2 个答案:

答案 0 :(得分:0)

试试吧

import requests

headers = {
'Cache-Control': 'no-cache',
'Content-Type': 'multipart/form-data',
'x-user-token': '[Token]',
'x-user-email': '[Email]',
}

files = [
('note[message]', 'hello'),
('note[image]', open('HelloWolrd.jpg', 'rb')),
]

requests.post('http://[url]/', headers=headers, files=files)

答案 1 :(得分:0)

P.S

我没有用下面的答案解决它,但最终我做到了。 如果您需要我的帮助,请参阅以下代码 最好删除不必要的标头 检查代码的标题

受宠的Python代码

#! /usr/bin/env python

import requests
import logging
import base64

logging.basicConfig(level=logging.NOTSET)

headers = {
'x-user-token': '[Token]',
'x-user-email': '[Email]',
}

files = {
'note[image]': (open("[file_name].jpg", "rb"), 'image/jpeg')
}

data = {
'note[message]': 'Hello World !'
}

res = requests.post('http://[URL]', headers=headers, files=files, data=data)

print(res.request.headers)
print(res.headers)

f = open('temp.log', 'w')
f.write(res.text)
f.close()

if res.status_code != 200:
    print(res.status_code)