python新手。我正在尝试访问biomedcentral oai界面。
http://www.openarchives.org/OAI/openarchivesprotocol.html#HTTPRequestFormat告诉我所有请求都必须是HTTP GET或POST请求。我已经尝试了两种方法,我可以提出最简单的查询(动词=识别),以确保不是我错误地格式化查询,我得到相同的错误 - 即“socket.error:[Errno 10054]远程主机“
强行关闭现有连接SO上有多个条目 - 它们似乎处理错误或处于连接的套接字级别,而我正在尝试使用httplib执行此操作 - 我在套接字上没有做任何事情水平。
我用于POST方法的代码是:
import httplib, urllib
params = urllib.urlencode({'verb': "Identify", })
headers = { "Content-type": "application/x-www-form-urlencoded","Content-Length": 82}
conn = httplib.HTTPConnection("www.biomedcentral.com")
conn.request("POST", "/oai/2.0", params, headers)
response = conn.getresponse()
print (response.status, response.reason)
data = response.read()
conn.close()
get方法更简单:
import httplib
connection = httplib.HTTPConnection("www.biomedcentral.com")
connection.request("GET", "/oai/2.0?verb=Identify")
r1 = connection.getresponse()
print (r1.status, r1.reason)
data = r1.read()
print (data)
connection.close()
在这两种情况下,我都在关闭连接,因为我认为我应该这样做。我无法理解为什么服务器会关闭连接。这不是间歇性的,这显然表明网站存在问题,当我尝试以类似的方式访问其他网站时就会发生这种情况。我已经与IT部门核实过,我的代理设置似乎是正确的。我不知道其他原因/解决方案。
有人有任何想法吗?他们将非常感激。
干杯 本。