如何用Python制作一个HTTP客户端程序

417 阅读4分钟

HTTP协议向网络服务器发送客户端请求,如果交易是合法的,则检索特定的数据和信息。使用python请求包中提供的许多方法,你可以检查服务器的答案。因此,在今天的这篇指南中,我们将讨论python中的一些HTTP客户端的程序。实现的python脚本主要在客户端执行,并在本指南中显示服务器的回复结果。那么,让我们从Spyder 3的第一个例子开始吧。

例子1:

让我们试试我们的第一个例子,看看简单的请求程序在python中是如何工作的。这个程序将不是关于HTTP客户端的,而是对网络上一个指定的URL的简单请求。首先,你需要导入 "requests "模块到你的代码顶部。我们必须使用 "requests "模块的 "get() "方法,以文本形式获取google服务器上的所有数据。因此,我们必须在 "get "函数参数中提到谷歌的URL。所有的文本数据将被存储在第二行代码中声明和初始化的 "res "变量中。print语句使用 "res "变量,在将其转换为 "文本 "形式后在shell上显示。

import requests

res = requests.get('https://google.com')

print(res.text)[:200]

使用Spyder3的 "运行 "按钮运行这段代码后,我们得到了 "google "指定的URL的所有数据,并存储在变量 "res "中。因此,print语句使用控制台中的 "res "变量,在Spyder3控制台显示文本格式的数据,如下图所示。

例子2:

让我们来看看另一个HTTP客户端的例子。在我们的第一个例子中,我们瞥见了向网络服务器发出简单的请求。现在,我们将看看如何建立一个HTTP客户端连接。为此,你需要在你的python代码开始时首先导入python的 "HTTP.client "模块。之后,HTTP.client模块被用来调用 "HTTPConnection() "函数来与指定的URL建立连接。这里使用了谷歌的URL。

你必须提到你试图连接的端口号,即80。你还必须提到这个HTTP连接的超时时间。这里,我们给了 "超时 "变量一个10秒的值。连接响应将被保存到名为 "con "的连接对象中,这个变量数据将通过print子句中的 "con "变量显示在控制台中。

import http.client

con = http.client.HTTPConnection('http://google.com', 80, timeout=10)

print(con)

让我们在Spyder 3中使用工具中间的 "运行 "按钮运行这三行python代码。运行这段代码后,我们在Spyder 3的控制台得到了如下的输出。连接已经建立在指定的google URL上,使用的是80端口,并且为这个连接指定了超时时间。

例子3:

让我们尝试另一个例子,用python制作一个HTTP客户端程序来建立连接。在上面的例子中,我们已经看了如何在HTTP客户端模块的帮助下创建一个连接,以及如何获得网络服务器的响应。因此,你需要在第一行使用关键字 "import "导入 "HTTP.client "模块。"HTTP.client "模块将被进一步利用,使用它的 "HTTPConnection() "函数与 "journaldev "的URL建立连接。连接对象 "con "已经被声明用来保存HTTP客户端连接。

现在,同样的连接对象 "con "被用来调用 "require "函数来指定我们现在要做的请求类型,即 "GET "意味着要获得一个响应。在下一行,我们使用相同的 "con "对象来调用http.client模块的 "getresponse() "函数。它被用来从指定的URL中获取答案,并将其保存到 "resp "变量中。从响应数据中,打印语句将只选择使用内置的resp.status和resp.reason以普通文本格式显示该特定状态的响应状态和原因。最后,应该通过连接对象 "con "调用HTTP.client模块的 "close() "函数来关闭连接。

import http.client

con = http.client.HTTPConnection("www.journaldev.com")

con.request("GET", "/")

resp = con.getresponse()

print("Status: {} and reason: {}".format(resp.status, resp.reason))

con.close()

我们在运行这段代码6行以建立一个HTTP连接时得到了以下输出。该输出显示状态为301,该状态的原因是特定的服务器数据被永久地移动。

总结

这篇文章是关于如何使用http.client模块在python中创建一个HTTP客户端连接。我们还讨论了如何使用python工具中简单的 "request "模块与网络服务器建立一个简单的连接。