requests请求方式、参数

2024-08-31 22:18
文章标签 参数 请求 方式 requests

本文主要是介绍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请求方式、参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125148

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2