网络请求
python3.x
# encoding=utf8
import json
import urllib.request
import urllib.parse
import logging
def post_inform(url, content_text):
url = url
data = json.dumps(content_text)
data = bytes(data, 'utf8')
print(data)
headers = {"Content-Type":'application/json'}
req = urllib.request.Request(url=url, headers=headers, data=data)
try:
resp = urllib.request.urlopen(req).read()
print(resp.decode('utf-8'))
except Exception as e:
logging.error(e)
print(e)
if __name__ == '__main__':
url = 'www.baidu.com'
data = {'key1': value1, 'key2': 'value2'}
inform_markdown(url, data)
python2.x
urllib、urllib2
import urllib2
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
req = urllib2.Request(
url="http://127.0.0.1:4040",
data={"msg":"1"},
headers={ 'User-Agent' : user_agent }
)
#-*- coding:utf-8 -*-
import urllib2
import urllib
url_ip = 'http://httpbin.org/ip'
url_get = 'http://httpbin.org/get'
def use_simple_urllib2(url_ip):
response = urllib2.urlopen(url_ip)
print ('>>>>>>Response Headers:')
print (response.info())
print ('>>>Response Body:')
print (''.join([line for line in response.readlines()]))
def use_params_urllib2(url_get):
#构建请求参数
params = urllib.urlencode({'param1':'hello', 'param2': 'world'})
print ('Request Params:')
print (params)
#发送请求
response = urllib2.urlopen('?'.join([url_get, '%s'])%params)
#处理响应
print ('>>>>>>Response Headers:')
print (response.info())
print '>>>Status Code:'
print response.getcode()
print ('>>>Response Body:')
print (''.join([line for line in response.readlines()]))
if __name__ == '__main__':
print ('>>>Use Simple urllib2:')
use_simple_urllib2(url_ip)
print
print '>>>Use params urllib2:'
use_params_urllib2(url_get)
案例2
# encoding=utf8
import json
import urllib2
import urllib
import logging
def post_inform(url, content_text):
url = url
order_context = content_text
method = "POST"
handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(handler)
data = json.dumps(order_context)
print data
request = urllib2.Request(url, data=data)
request.add_header("Content-Type",'application/json')
request.get_method = lambda: method
try:
connection = opener.open(request)
except urllib2.HTTPError,e:
logging.error(e)
connection = e
# check. Substitute with appropriate HTTP code.
if connection.code == 200:
data = connection.read()
logging.info(data)
else:
logging.info(connection.code)
requests3
#-*- coding:utf-8 -*-
import requests
url_ip = 'http://httpbin.org/ip'
url_get = 'http://httpbin.org/get'
def use_simple_requests(url_ip):
response = requests.get(url_ip)
print ('>>>>>>Response Headers:')
print (response.headers)
print ('>>>Response Body:')
print response.text
def use_params_requests(url_get):
#构建请求参数
params = {'param1':'hello', 'param2': 'world'}
print ('Request Params:')
print (params)
#发送请求
response = requests.get(url_get, params=params)
#处理响应
print ('>>>>>>Response Headers:')
print (response.headers)
print '>>>Status Code:'
print response.status_code
print response.reason
print ('>>>Response Body:')
print response.json()
if __name__ == '__main__':
print ('>>>Use Simple requests:')
use_simple_requests(url_ip)
print
print '>>>Use params requests:'
use_params_requests(url_get)