您的位置:首页 > 理论基础 > 计算机网络

python 发送http请求填坑

2017-06-06 20:23 134 查看

先说问题:最近开始使用python的urllib2和urllib来请求webservice获取数据,但是服务器是java的服务器,发现python传入的参数(中文)在服务器端显示的是乱码,在网上搜索了一整天,终于整出来了,特此填坑。

1.环境:python2.7.10,rhel5.5

2.代码:

import urllib2
import urllib
url = "https://www.baidu.com"
para1 = {'haha',"哈哈"}
#因为有中文,所以用 urllib.quote()
para1 = urllib.quote(para1)
para = urllib.urlencode(para1)
f = urllib2.urlopen(url,data=para)
buf = f.read()
f.close()


主要函数功能说明:

urllib.quote(string[, safe]):对字符串进行编码。参数 safe 指定了不需要编码的字符。

urllib.unquote(string) :对字符串进行解码。

urllib.urlencode(query[, doseq]):将dict或者包含两个元素的元组列表转换成url参数。

注意:java服务器端需要修改部分代码,需要将请求参数进行utf-8解码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息