码迷,mamicode.com
首页 > 编程语言 > 详细

python内建模块发起HTTP(S)请求

时间:2019-12-05 16:02:01      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:urlencode   url编码   学习   pre   pen   请求   off   headers   sdn   

一、Python2

 httplib

简介:httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现。

httplib实现http请求

 


import httplib

host = ‘www.baidu.com’  # 注意:不能带上协议

port = 80

# 获取HTTPConnection对象

conn = httplib.HTTPConnection(host, port)

# 发起请求

conn.request("GET", "/")

# 获取返回值

res = conn.getresponse()

print res.status # 状态码

print res.read() # 返回结果

 

 

 

urllib、urllib2

简介:urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。

 

urllib发起请求

import urllib
baidu = urllib.urlopen(http://www.baidu.com)
print baidu.read() # 读取返回结果
print baidu.geturl() # 获取请求url
print baidu.getcode() # 获取状态码
baidu.close()

 

urllib进行url编码

import urllib
d = {
    "$count":"count",
    "$limit":"limit",
    "$offset":"offset",
    "$filter":None,
}
print urllib.urlencode(d)

结果:%24offset=offset&%24limit=limit&%24filter=None&%24count=count

 

详细使用方法见

urllib学习

urllib2

import json
import urllib
import urllib2
#get response
data = json.dumps(body)
conn = urllib2.Request(url, data, header)
res = urllib2.urlopen(conn)
print res
print res.read()

 

 

二、python3

urllib

简介:Python3中也有urlliburllib3两个库,其中urllib几乎是Python2urlliburllib2两个模块的集合,所以我们最常用的urllib模块,而urllib3则作为一个拓展模块使用。

urllib发起请求

import urllib
from urllib import request
res = request.urlopen("http://www.baidu.com")
print(res.read())

 

urllib进行url编码

import urllib
from urllib import parse
d = {"a":"1","b":"2"}
parse.urlencode(d)

结果:‘a=1&b=2‘

详见:

python3 urllib学习

python内建模块发起HTTP(S)请求

标签:urlencode   url编码   学习   pre   pen   请求   off   headers   sdn   

原文地址:https://www.cnblogs.com/beard/p/11982673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!