成都市城乡住房建设厅网站网络推广联系方式

当前位置: 首页 > news >正文

成都市城乡住房建设厅网站,网络推广联系方式,广告设计网站,wordpress 一键迁移文章目录 安装基本用法测试网站发送GET请求发送POST请求更多请求请求参数请求头其他常用请求属性处理响应响应状态码响应内容 处理超时处理异常 requests 是一个非常流行的 Python HTTP 库#xff0c;用于发送所有类型的 HTTP 请求。它简洁易用#xff0c;能够处理复杂的请求… 文章目录 安装基本用法测试网站发送GET请求发送POST请求更多请求请求参数请求头其他常用请求属性处理响应响应状态码响应内容 处理超时处理异常 requests 是一个非常流行的 Python HTTP 库用于发送所有类型的 HTTP 请求。它简洁易用能够处理复杂的请求场景如保持会话、处理 cookies、上传文件等。本篇只对GET和POST做简单说明其他请求类似。 安装 要在 Python 中使用 requests 库首先需要安装它。可以使用以下指令进行安装 pip install requests如果遇到网络环境导致下载失败可以使用国内第三方镜像站进行安装这里使用的是阿里云镜像 pip install requests -i https://mirrors.aliyun.com/pypi/simple基本用法 测试网站 在接下来的代码示例中会使用到 httpbin.org 工具。httpbin.org 是一个专门用于测试 HTTP 请求的服务网站。这个网站由 Kenneth Reitz 创建目的是为开发者提供一个简单的工具来测试和调试各种 HTTP 请求。你可以使用它来发送各种类型的 HTTP 请求如 GET、POST、PUT、DELETE 等并查看服务器返回的内容。 以下是 httpbin.org 提供的一些常见测试端点 /get用于测试 GET 请求。它会返回你发送的查询参数、请求头等信息。/post用于测试 POST 请求。你可以发送表单数据或 JSON 数据并查看服务器返回的数据。/status/:code用于测试不同的 HTTP 状态码。例如/status/404 会返回一个 404 状态码。/redirect/:n用于测试重定向。/redirect/3 会重定向 3 次。/cookies 和 /cookies/set用于测试 cookie 的处理。/delay/:seconds用于测试请求延迟。它会延迟指定的秒数后再响应。/basic-auth/:user/:passwd用于测试基本 HTTP 身份验证。 当你在开发过程中需要测试各种 HTTP 行为时。例如你可以使用它来验证你的客户端是否正确处理重定向、身份验证、请求头、响应格式等。 发送GET请求 GET 请求用于从服务器获取数据。最简单的形式如下 import requestsresponse requests.get(http://httpbin.org/get) print(response.status_code) # 输出状态码例如 200 print(response.text) # 输出响应内容发送POST请求 POST 请求通常用于提交数据到服务器例如提交表单数据。 import requestspayload {key1: value1, key2: value2} res requests.post(urlhttp://httpbin.org/post,datapayload) print(res.json())更多请求 requests.get(url, paramsNone, kwargs): 发送一个HTTP GET请求并返回一个Response对象。可以使用params参数传递查询参数也可以使用kwargs参数传递其他的请求参数如headers、timeout等。requests.post(url, dataNone, jsonNone, kwargs): 发送一个HTTP POST请求并返回一个Response对象。可以使用data参数传递表单数据也可以使用json参数传递JSON数据还可以使用kwargs参数传递其他的请求参数如headers、timeout等。requests.put(url, dataNone, kwargs): 发送一个HTTP PUT请求并返回一个Response对象。可以使用data参数传递请求数据也可以使用kwargs参数传递其他的请求参数如headers、timeout等。requests.delete(url, kwargs): 发送一个HTTP DELETE请求并返回一个Response对象。可以使用kwargs参数传递请求参数如headers、timeout等。requests.head(url, kwargs): 发送一个HTTP HEAD请求并返回一个Response对象。可以使用kwargs参数传递请求参数如headers、timeout等。requests.options(url, kwargs): 发送一个HTTP OPTIONS请求并返回一个Response对象。可以使用kwargs参数传递请求参数如headers、timeout等。requests.exceptions: requests库的异常类如Timeout、ConnectionError等可以用于捕获请求过程中可能出现的异常情况。 请求参数 可以通过 params 参数将查询参数添加到 URL 中params 用于添加 URL 查询参数。这些参数会附加在 URL 后面格式为 keyvalue多个参数之间用 分隔。 params {key1: value1, key2: value2} response requests.get(url, paramsparams)发送的实际请求 URL 会是 https://api.example.com/data?key1value1key2value2请求头 自定义请求头可以通过 headers 参数传递。用于设置 HTTP 请求头。它用来传递额外的信息给服务器。可以把它想象成你写信时附上的说明比如告诉收信人你是谁、信的内容类型等。 import requestsheaders {User-Agent: my-app/0.0.1} response requests.get(https://httpbin.org/get, headersheaders) print(response.text)其他常用请求属性 timeout 用于设置请求的超时时间单位是秒。如果请求超过指定时间未完成会抛出requests.exceptions.Timeout异常。 auth用于处理 HTTP 身份验证。比如当你访问某个网页时可能会弹出一个窗口要求输入用户名和密码这就是一种基本的 HTTP 身份验证。假设你要访问一个需要登录的 API 或网页你需要提供正确的用户名和密码服务器才会允许你访问。 from requests.auth import HTTPBasicAuth response requests.get(url, authHTTPBasicAuth(user, pass))HTTPBasicAuth 是处理基本身份验证的简单方法特别适合用来访问那些需要用户名和密码的简单 API 或网页。 cookies用于发送 HTTP cookies可以是一个字典。是服务器与客户端之间交换的小型数据用于记住用户的信息和状态。
处理响应 请求会返回一个 Response 对象该对象包含了服务器返回的数据和状态信息。 响应状态码 status_code属性用于获取 HTTP 响应状态码如 200成功、404未找到、500服务器错误等 if response.status_code 200:print(Success!) elif response.status_code 404:print(Not Found.)响应内容 requests 提供了多种方式获取响应内容 text返回响应内容的字符串形式。它自动将响应的字节数据解码为 Unicode 字符串使用的是 HTTP 响应头中指定的字符编码通常是 UTF-8。content返回响应内容的二进制形式。不进行任何解码。这对于处理非文本内容如图片、音频文件、视频文件、压缩包等非常有用。适用于处理二进制文件如图片、音频文件、PDF 文档等。json()如果响应内容是 JSON 格式可以使用此方法将其解析为 Python 字典。url返回请求的最终 URL包括重定向后的 URLheaders返回一个包含响应头的字典。cookies返回服务器在响应中设置的 cookies。 处理超时 可以通过 timeout 参数设置请求的超时时间单位为秒。如果请求超时会抛出 requests.exceptions.Timeout 异常。 try:response requests.get(https://httpbin.org/delay/10, timeout2) except requests.exceptions.Timeout:print(The request timed out)处理异常 当使用requests库发送HTTP请求时有可能会发生异常情况例如网络错误、连接超时等。为了处理这些异常情况我们可以使用Python的异常处理机制。requests库中定义了多种异常类型可以用来捕获和处理各种HTTP请求相关的异常情况。 在使用requests库时我们应该始终使用try-except语句来捕获和处理可能发生的异常。以下是一些常见的异常类型 requests.exceptions.RequestException: 所有异常的基类可以用来捕获所有的异常情况。requests.exceptions.Timeout: 当请求超时时抛出此异常。requests.exceptions.Timeout: 当请求超时时抛出此异常。requests.exceptions.HTTPError: 当HTTP请求返回错误状态码时抛出此异常。 以下是一个例子演示如何使用try-except语句来捕获请求可能出现的异常情况 import requeststry:r requests.get(https://www.baidu.com/, timeout3)r.raise_for_status() except requests.exceptions.Timeout as e:print(请求超时, e) except requests.exceptions.ConnectionError as e:print(连接错误, e) except requests.exceptions.HTTPError as e:print(HTTP错误, e) except requests.exceptions.RequestException as e:print(其他异常, e)在上述代码中我们首先使用try语句来执行requests.get()方法如果发生异常则会跳转到相应的except块进行处理。如果请求超时、连接错误或者HTTP错误将会抛出相应的异常并且打印相应的错误信息。如果发生其他异常情况则会抛出requests.exceptions.RequestException异常并打印相应的错误信息。 通过使用异常处理机制我们可以有效地处理请求中可能出现的各种异常情况以确保我们的程序能够在不稳定的网络环境中稳定地运行。