python 发送http请求填坑

xiaoxiao2021-02-28  106

先说问题:最近开始使用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解码。

转载请注明原文地址: https://www.6miu.com/read-21889.html

最新回复(0)