python如何实现get传body,如何指定python请求http put body?

I'm trying to rewrite some old python code with requests module.

The purpose is to upload an attachment.

The mail server requires the following specification :

https://api.elasticemail.com/attachments/upload?username=yourusername&api_key=yourapikey&file=yourfilename

Old code which works:

h = httplib2.Http()

resp, content = h.request('https://api.elasticemail.com/attachments/upload?username=omer&api_key=b01ad0ce&file=tmp.txt',

"PUT", body=file(filepath).read(),

headers={'content-type':'text/plain'} )

Didn't find how to use the body part in requests.

I managed to do the following:

response = requests.put('https://api.elasticemail.com/attachments/upload',

data={"file":filepath},

auth=('omer', 'b01ad0ce')

)

But have no idea how to specify the body part with the content of the file.

Thanks for your help.

Omer.

解决方案

Quoting from the docs

data – (optional) Dictionary or bytes to send in the body of the Request.

So this should work (not tested):

filepath = 'yourfilename.txt'

with open(filepath) as fh:

mydata = fh.read()

response = requests.put('https://api.elasticemail.com/attachments/upload',

data=mydata,

auth=('omer', 'b01ad0ce'),

headers={'content-type':'text/plain'},

params={'file': filepath}

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值