python 发送http请求填坑

来源:互联网 发布:天蝎网络第二季看不到 编辑:程序博客网 时间:2024/06/14 21:04

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

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

2.代码:

import urllib2import urlliburl = "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解码。

原创粉丝点击