python3 post方式请求,传入data参数但req.full_url表明没有拼接是怎么回事?

# -*- coding: utf-8 -*-
import urllib
imageURL='http://api.map.baidu.com/place/v2?'
user_agent1 = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent1}
params = urllib.parse.urlencode({
            'query':'人民广场',
            'region':'上海',
            'output':'json'}).encode('utf-8'); 
try:
    req = urllib.request.Request(url=imageURL,data=params,headers=headers)
    data=urllib.request.urlopen(req).read().decode('utf-8')
    print(req.full_url)   
except urllib.error.HTTPError as e:
    print(e)  

打印结果仍然是

http://api.map.baidu.com/place/v2?

表明并没有拼接成功

阅读 7k
2 个回答

post方法不需要拼接URL


http的Post方法是向服务器提交数据的一种请求,data在HTTP包FORM(表单)域中传递,此方法不会修改URL字符串。

用 requests 吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题