- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我在本地主机上运行 Google App Engine 开发服务器 (Java)。我正在尝试使用 Python 2.7 urllib.urlopen 检索 URL。初始检索有效,但是当我尝试调用 read() 或 readlines() 时,我得到:
Traceback (most recent call last):
File "./getMap.py", line 6, in <module>
lst = f.readlines()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 513, in readlines
line = self.readline()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 445, in readline
data = self._sock.recv(self._rbufsize)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 552, in read
s = self.fp.read(amt)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 378, in read
data = self._sock.recv(left)
socket.error: [Errno 54] Connection reset by peer
浏览器工作,wget 工作。 urllib 和 urllib2 都会出现问题。这是代码:
import urllib2
f = urllib2.urlopen("http://localhost:8080/default.jsp")
lst = f.readlines()
for a in lst:
print a
奇怪的是,我可以使用 readline() 打印出文件的第一行——我只是无法获取整个 文件。我感觉 Python 可能是“懒惰地”不请求 URL 的全部内容,直到我通过 readlines() 请求它,然后应用引擎开发服务器已经过分热心地关闭了连接。但我可能完全错了。
我尝试研究这个问题,但没有发现任何适用的东西。我看到的大多数 Google 命中都围绕着随机的、间歇性的计时问题(这不是间歇性问题,它是可靠的)或代理/防火墙问题(这里没有发生这样的事情)。
假设我的理论是正确的——有没有办法告诉 urlopen 立即获得整个响应,就像 wget 和浏览器似乎正在做的那样?或者有没有办法告诉 GAE 开发服务器冷静下来,不要那么快关闭连接?如果没有必要,我宁愿不深入研究较低级别的 Python 套接字。
谢谢
附注说明:python 脚本只是从命令行运行,并试图连接到在同一个盒子上运行的 GAE 开发服务器。我不是在尝试从自身或类似的东西连接到 GAE 开发服务器,GAE 服务器运行的是 Java,而不是 Python。我实际上想在这里做的是:我的 GAE 网络应用程序有一些网络服务,我正在编写一个批处理脚本来获取/发布到这些网络服务,这样当我需要重置/清除数据存储时(例如: 数据已损坏)我可以先使用此 Python 脚本备份数据,然后删除数据存储,然后再次使用该脚本将数据重新加载。
更新:所以我尝试了更多测试。 Python 可以轻松读取 GAE 开发服务器提供的任何 HTML 文件。然而,任何 JSP,即使是最简单的“hello world”JSP,都无法读取并出现相同的“连接被对等重置”错误。我将尝试更新到 GAE SDK 的 1.6.1 版本,无论如何我都必须在某个时候这样做,最好是现在。希望它能解决这个问题。
最佳答案
虽然我看不出您的 Python 代码有任何问题,也不知道您的 Java GAE 设置可能有什么问题,但我建议对这个问题采取不同的看法。
您提到您基本上想向您的服务器发送 GET/POST 请求并保存/稍后读取内容,并且 wget 等命令行工具可以正常工作。当您需要进行更高级的文本编辑时,我建议您使用 bash 脚本以及 curl 和 python。
curl http://localhost:8080/default.jsp > default.bak
... wipe db ...
data = $(cat default.bak)
curl -X "POST" -d "backup=$data" http://localhost:8080/default_restore.jsp
如果您需要在发送数据之前编辑数据,您可以使用 python 从 default.bak 读取或通过管道将其传输到标准输入
data = $(cat default.bak)
python your_script.py $data
curl http://localhost:8080/default.jsp | python yourscript.py > default.bak
关于java - Python 脚本不会在本地主机 gae 开发服务器的 urlopen 之后读取()——对等连接重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8820042/
我希望我的 C/C++ 客户端通过 SSL 验证服务器。我首先使用 从服务器下载了证书文件 openssl s_client -showcerts -connect www.openssl.org:4
我正在尝试学习使用 RSelenium。我坚持只是尝试使用 rsDriver 启动服务器。我只是想运行下面的代码并得到以下错误: rD = 8 x64 (build 9200) Matrix prod
我已经建立了一个 8 组织的单 channel 结构网络。我能够进行整个网络设置。但是设置成功后。一些 docker 实例停止监听它们各自的端口。当我做 docker ps -a它显示了一些对等节点图
如何在多个 Azure Kubernetes 集群上的 Pod 之间配置路由? 与 Google Cloud 上的 ip-alias/vpc-native 类似的内容 最佳答案 在 AKS 中,我认为
我正在尝试实现点对点连接应用程序。所以我想将 2 个以上的设备相互连接。如何为每对设备创建单独的 session 使用新的 GameKit 框架是否可以连接到 1 个以上的设备? 最佳答案 您可以使用
我一直致力于创建一个 VPC 对等连接,该连接可以使用 cloudformation 从 eu-west-1 与 us-east-1 进行对等。这是目前的云信息: AWSTemplateFormatV
我正在尝试在两个不同区域之间进行 vpc 对等互连。在这里我已经创建了资源,现在我只想将它们的 id 作为参数传递。在同一区域,我可以在两个 VPC 之间进行对等。但我在两个不同的区域收到错误,因为r
我是一名优秀的程序员,十分优秀!