本文主要是介绍requests请求方式、参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
-
- get
- post
- 其他请求
- 参数
-
get
1、无参数实例
import requestsret = requests.get('https://github.com/timeline.json')
print(ret.text)
输出如下:
{"message":"Hello there, wayfaring stranger. If you’re reading this then you probably didn’t see our blog post a couple of years back announcing that this API would go away: http://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.","documentation_url":"https://developer.github.com/v3/activity/events/#list-public-events"}
2、有参数实例
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.get("http://httpbin.org/get", params=payload)
print(ret.text)
{"args": {"key1": "value1", "key2": "value2"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.4"}, "origin": "39.155.185.105", "url": "http://httpbin.org/get?key1=value1&key2=value2"
}
post
基本POST实例
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.post("http://httpbin.org/post", data=payload)print(ret.text)
输出如下:
{"args": {}, "data": "", "files": {}, "form": {"key1": "value1", "key2": "value2"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Content-Length": "23", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.4"}, "json": null, "origin": "39.155.185.105", "url": "http://httpbin.org/post"
}
发送请求头和数据实例
import json
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}ret1 = requests.post(url, data=json.dumps(payload), headers=headers)
ret2 = requests.post(url, data=json.dumps(payload))print(ret1.text,ret2.text)
输出如下:
{"message":"Not Found","documentation_url":"https://developer.github.com/v3"} {"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
其他请求
requests.get(url, params=None, **kwargs)
requests.post(url, data=None, json=None, **kwargs)
requests.put(url, data=None, **kwargs)
requests.head(url, **kwargs)
requests.delete(url, **kwargs)
requests.patch(url, data=None, **kwargs)
requests.options(url, **kwargs)# 以上方法均是在此方法的基础上构建
requests.request(method, url, **kwargs)
参数
def param_method_url():# requests.request(method='get', url='http://127.0.0.1:8000/test/')# requests.request(method='post', url='http://127.0.0.1:8000/test/')passdef param_param():# - 可以是字典# - 可以是字符串# - 可以是字节(ascii编码以内)# requests.request(method='get',# url='http://127.0.0.1:8000/test/',# params={'k1': 'v1', 'k2': '水电费'})# requests.request(method='get',# url='http://127.0.0.1:8000/test/',# params="k1=v1&k2=水电费&k3=v3&k3=vv3")# requests.request(method='get',# url='http://127.0.0.1:8000/test/',# params=bytes("k1=v1&k2=k2&k3=v3&k3=vv3", encoding='utf8'))# 错误# requests.request(method='get',# url='http://127.0.0.1:8000/test/',# params=bytes("k1=v1&k2=水电费&k3=v3&k3=vv3", encoding='utf8'))passdef param_data():# 可以是字典# 可以是字符串# 可以是字节# 可以是文件对象# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# data={'k1': 'v1', 'k2': '水电费'})# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# data="k1=v1; k2=v2; k3=v3; k3=v4"# )# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# data="k1=v1;k2=v2;k3=v3;k3=v4",# headers={'Content-Type': 'application/x-www-form-urlencoded'}# )# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# data=open('data_file.py', mode='r', encoding='utf-8'), # 文件内容是:k1=v1;k2=v2;k3=v3;k3=v4# headers={'Content-Type': 'application/x-www-form-urlencoded'}# )passdef param_json():# 将json中对应的数据进行序列化成一个字符串,json.dumps(...)# 然后发送到服务器端的body中,并且Content-Type是 {'Content-Type': 'application/json'}requests.request(method='POST',url='http://127.0.0.1:8000/test/',json={'k1': 'v1', 'k2': '水电费'})def param_headers():# 发送请求头到服务器端requests.request(method='POST',url='http://127.0.0.1:8000/test/',json={'k1': 'v1', 'k2': '水电费'},headers={'Content-Type': 'application/x-www-form-urlencoded'})def param_cookies():# 发送Cookie到服务器端requests.request(method='POST',url='http://127.0.0.1:8000/test/',data={'k1': 'v1', 'k2': 'v2'},cookies={'cook1': 'value1'},)# 也可以使用CookieJar(字典形式就是在此基础上封装)from http.cookiejar import CookieJarfrom http.cookiejar import Cookieobj = CookieJar()obj.set_cookie(Cookie(version=0, name='c1', value='v1', port=None, domain='', path='/', secure=False, expires=None,discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False,port_specified=False, domain_specified=False, domain_initial_dot=False, path_specified=False))requests.request(method='POST',url='http://127.0.0.1:8000/test/',data={'k1': 'v1', 'k2': 'v2'},cookies=obj)def param_files():# 发送文件# file_dict = {# 'f1': open('readme', 'rb')# }# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# files=file_dict)# 发送文件,定制文件名# file_dict = {# 'f1': ('test.txt', open('readme', 'rb'))# }# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# files=file_dict)# 发送文件,定制文件名# file_dict = {# 'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf")# }# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# files=file_dict)# 发送文件,定制文件名# file_dict = {# 'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf", 'application/text', {'k1': '0'})# }# requests.request(method='POST',# url='http://127.0.0.1:8000/test/',# files=file_dict)passdef param_auth():from requests.auth import HTTPBasicAuth, HTTPDigestAuthret = requests.get('https://api.github.com/user', auth=HTTPBasicAuth('wupeiqi', 'sdfasdfasdf'))print(ret.text)# ret = requests.get('http://192.168.1.1',# auth=HTTPBasicAuth('admin', 'admin'))# ret.encoding = 'gbk'# print(ret.text)# ret = requests.get('http://httpbin.org/digest-auth/auth/user/pass', auth=HTTPDigestAuth('user', 'pass'))# print(ret)#def param_timeout():# ret = requests.get('http://google.com/', timeout=1)# print(ret)# ret = requests.get('http://google.com/', timeout=(5, 1))# print(ret)passdef param_allow_redirects():ret = requests.get('http://127.0.0.1:8000/test/', allow_redirects=False)print(ret.text)def param_proxies():# proxies = {# "http": "61.172.249.96:80",# "https": "http://61.185.219.126:3128",# }# proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}# ret = requests.get("http://www.proxy360.cn/Proxy", proxies=proxies)# print(ret.headers)# from requests.auth import HTTPProxyAuth## proxyDict = {# 'http': '77.75.105.165',# 'https': '77.75.105.165'# }# auth = HTTPProxyAuth('username', 'mypassword')## r = requests.get("http://www.google.com", proxies=proxyDict, auth=auth)# print(r.text)passdef param_stream():ret = requests.get('http://127.0.0.1:8000/test/', stream=True)print(ret.content)ret.close()# from contextlib import closing# with closing(requests.get('http://httpbin.org/get', stream=True)) as r:# # 在此处理响应。# for i in r.iter_content():# print(i)def requests_session():import requestssession = requests.Session()### 1、首先登陆任何页面,获取cookiei1 = session.get(url="http://dig.chouti.com/help/service")### 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权i2 = session.post(url="http://dig.chouti.com/login",data={'phone': "8615131255089",'password': "xxxxxx",'oneMonth': ""})i3 = session.post(url="http://dig.chouti.com/link/vote?linksId=8589623",)print(i3.text)参数示例
这篇关于requests请求方式、参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!