如何在SSH中发送HTTP请求?

4

我正在尝试在SSH终端中使用Python进行简单的HTTP请求:

from requests import get
r = get("https://www.google.com")

然而,在SSH中执行此命令只会无限制地停滞。当不在SSH中时,这种情况不会发生。

是否有任何方法可以发送请求,以使其成功通过?

提前感谢您的帮助。

编辑:运行Joran提供的链接中的日志记录仅产生以下一行:

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): www.google.com

你的导入与代码不匹配...这个问题真的没有意义...在我的ssh终端中它可以正常工作(以及我尝试过的每个ssh终端)。 - Joran Beasley
你在企业网络中吗? - user1157751
1
@JoranBeasley 已修复;我测试的代码是正确的。 - Cisplatin
@JoranBeasley 将结果添加到了问题中。 - Cisplatin
1
这是一个虚拟机还是物理机?我可能会怀疑网络配置(如防火墙/代理或虚拟机网络适配器)。 - Joran Beasley
显示剩余2条评论
2个回答

2
首先,请通过一些系统级工具(如curl)检查您是否能够访问URL:curl -I "https://www.google.com"。如果您没有超时错误并且获得了成功响应,则我的答案不适用于您 :)
如果套接字连接没有定义超时时间,您的代码可能会永远运行。如果由于某种原因您的系统无法从套接字中读取(在低级别上),您必须等待很长时间。
有关超时的更多信息,请参见http://docs.python-requests.org/en/latest/user/quickstart/#timeouts

1
尝试以下代码(假设您正在使用Python3):

from urllib.request import urlopen
r = urlopen('https://www.google.com').read()

我之前使用的是urllib2,但是遇到了同样的错误,不确定这个方法是否有效。 - Cisplatin
你为什么认为这会起作用,如果请求不行呢?@felixbade - Joran Beasley
@JoranBeasley 啊,我以为代码里只是有个打字错误。 - felixbade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接