Python request库:GET请求与解决乱码技巧

需积分: 27 2 下载量 44 浏览量 更新于2024-09-02 收藏 3KB TXT 举报
在Python编程中,`request`库是一个强大的HTTP客户端,常用于发送HTTP请求并处理响应。它提供了简洁易用的API,方便开发者与各种Web服务进行交互。以下是对`request`库的一些关键知识点的详细介绍: 1. 导入和基本操作: 首先,要使用`requests`库,需要通过`import requests`语句将其引入到代码中。例如,使用`requests.get()`方法发送一个GET请求到指定的URL,如`response = requests.get("https://www.baidu.com")`。这会返回一个`Response`对象,可以通过`type(response)`检查其类型。 2. 响应状态和内容: `response.status_code` 属性可以获取HTTP响应的状态码,通常200表示成功。`response.text` 返回的是服务器返回的文本内容,但需要注意,由于编码问题,直接使用`text`可能会导致乱码。为了避免乱码,应使用`response.content`获取二进制数据,然后通过`response.content.decode("utf-8")`将其解码为可读的UTF-8格式。 3. 响应编码推测与设置: Requests会根据HTTP头部自动推测响应的编码,但有时候可能不准确。可以使用`response.encoding`属性手动设置,如`response.encoding = "utf-8"`,然后再调用`response.text`以确保正确显示文本内容。 4. GET请求示例: GET请求是HTTP中最常用的请求方式。`requests.get('http://httpbin.org/get')`是一个基础的GET请求,返回服务器的响应内容。如果需要传递参数,可以使用`params`关键字,例如`requests.get("http://httpbin.org/get?name=zhaofan&age=23")`,这里的参数会被附在URL后面作为查询字符串。 5. 参数传递: Requests支持通过字典形式传递参数,`params=data`中的`data`是一个包含键值对的字典,如`{'name': 'zhaofan', 'age': 22}`。这将自动将字典转换为查询字符串格式添加到URL中。 `requests`库提供了一种方便的方式来发送和处理HTTP请求,包括处理响应状态、编码问题以及传递参数等。在实际开发中,熟练掌握这些功能可以帮助开发者高效地与Web服务交互。
2019-11-06 上传
## request对象的方法使用 ```javascript ``` 该语句用于获取当前网页的相对路径 例如: 访问路径为:http://localhost:8080/hansom/response.jsp **request.getContextPath()**返回虚拟路径: /hansom **request.getScheme()**返回使用的协议:http **request.getServerName()**返回所在服务器的名字:localhost **request.getServerPort()**返回IP端口:8080 以下为个人的request笔记: **request.getProtocol()** 得到协议的名称 如:HTTP/1.0 禁用缓存:(转载:https://blog.csdn.net/lyclngs/article/details/25964559) **response.setHeader("Pragma", "no-cache")** **response.setHeader("Cache-Control", "no-cache")** **response.setHeader( "Pragma", "no-cache" ); response.addHeader( "Cache-Control", "must-revalidate" ); response.addHeader( "Cache-Control", "no-cache" ); response.addHeader( "Cache-Control", "no-store" ); response.setDateHeader("Expires", 0);** 单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。 Cache-Control头域   Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:   Public指示响应可被任何缓存区缓存。   Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。   no-cache指示请求或响应消息不能缓存   no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。   max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。   min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。   max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。