2017-10-18 26 views
0

我成功地验证了我的形象是通过卷曲 但是发送到服务器,我想进口Python语言请求模块 我的代码看起来像这样 谢谢您帮助如何改变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][email protected]' 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) 

回答

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) 
+0

我试过了,但结果是400错误。 – Gromit

+0

我找到了一个更好的方法。 我将尽力在https://curl.trillworks.com/ 的帮助下解决此问题。谢谢您的帮助。 – Gromit

+0

我解决了这个问题。 回头看我的问题来解决这个问题 感谢您的帮助。 – Gromit

0

P.S

我没有与下面的回答解决这个问题,但最终我做到了。 如果你需要我的帮助,请参考下面的代码 这是更好地去除不必要的头 检查你的代码的头

Resloved 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) 
相关问题