python - 请求库在 Window 中有效,在 Linux 中超时

标签 python linux python-2.7 proxy python-requests

我有一个简单的 python 脚本来使用请求库进行 POST 操作。在 Windows 中,它可以正常工作,没有问题。在 Linux 中,它工作即使我可以 ping。该脚本在 Linux 中给我:

Traceback (most recent call last):
  File "temp.py", line 55, in <module>
    r = requests.post(urlPOST, json=payLoad, auth=('admin', 'pass'), verify=False)
  File "/opt/ute/python/lib/python2.7/site-packages/requests/api.py", line 109, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/opt/ute/python/lib/python2.7/site-packages/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/opt/ute/python/lib/python2.7/site-packages/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/ute/python/lib/python2.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/opt/ute/python/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(110, 'Connection timed out'))

同样,我可以在 Linux 中 ping 站点没有问题

问题: 1- 我错了什么? 2- 除了 ping 之外,还有其他检查连接的方法吗?我的意思是,如果这是代理问题,那么我也无法 ping,对吗?

最佳答案

我的猜测是,该网站没有响应您的请求,这就是您收到超时错误的原因。我将尝试通过更改 header 中的用户代理来解决此问题,因为某些网站可能会试图避免机器人。也许尝试这样的事情:

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebK it/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
r = requests.post(urlPOST, headers=header, json=payLoad, auth=('admin', 'pass'), verify=False)

关于python - 请求库在 Window 中有效,在 Linux 中超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978321/

相关文章:

python - 如何判断服务器是否被锁定?

linux - 非零返回码,尽管 find -exec rm 有效

Python:获取集合列表中的最大值

python - 从 numpy 数组中选择最小索引的第一次出现

python - logging 如何控制刷新到日志文件的次数

python - 使用 patchify 库创建补丁时出现的问题

python - 从 MySQL 查询设置 CheckListBox

python - 带超时的异步子进程

linux - 归档文件的归档

linux - 使用 BASH 遍历 Linux 软链接(soft link)