python urllib2发http请求_使用python urllib / urllib2发出一个http POST请求来上传文件

我想发一个POST请求,使用python将文件上传到Web服务(并得到响应).例如,我可以使用curl执行以下POST请求:

curl -F "file=@style.css" -F output=json http://jigsaw.w3.org/css-validator/validator

如何使用python urllib / urllib2发出相同的请求?我到目前为止最接近的是:

with open("style.css", 'r') as f:

content = f.read()

post_data = {"file": content, "output": "json"}

request = urllib2.Request("http://jigsaw.w3.org/css-validator/validator", \

data=urllib.urlencode(post_data))

response = urllib2.urlopen(request)

我从上面的代码中得到了HTTP Error 500.但是因为我的curl命令成功了,我的python请求一定是错的?

我对这个话题很陌生,如果菜鸟问题有很简单的答案或错误,请原谅我.在此先感谢您的所有帮助!

解决方法:

我个人认为你应该考虑requests库发布文件.

url = 'http://jigsaw.w3.org/css-validator/validator'

files = {'file': open('style.css')}

response = requests.post(url, files=files)

标签:python,post,http,urllib,urllib2

来源: https://codeday.me/bug/20190930/1835645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值