通过requests.post+URL上传json数据报错[Errno 111] Connection refused

写了一个脚本,抓取Linux服务器信息,然后上传给Django的一个接口,脚本没有错误。print能输出正确信息,接口测试正常,Linux虚拟机操作,Django在pycharm上。

脚本片段:

hostinfo = {
        'hostname':hostname,
        'ip': ip,
        'osversion': osversion,
        'memory': memory,
        'disk': disk,
        'cpu_core': Cpu_Cores,
    }
    data = json.dumps(hostinfo)
    r = requests.post('http://192.168.2.120/api/report', data=data)
    if r.status_code == 200 and r.content == 'OK':
        print 'ok'
    else:
        print 'fail'

报错:

  File "auto_get_info.py", line 92, in <module>
    main()
  File "auto_get_info.py", line 86, in main
    r = requests.post('http://192.168.2.120/api/report', data=data)
  File "/data/requests/api.py", line 108, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/data/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/data/requests/sessions.py", line 464, in request
    resp = self.send(prep, **send_kwargs)
  File "/data/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/data/requests/adapters.py", line 419, in send
    raise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='192.168.2.120', port=80): Max retries exceeded with url: /api/report (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x2a02c50>: Failed to establish a new connection: [Errno 111] Connection refused',))

求解.......跪谢。

阅读 21k
2 个回答

在你运行PyCharm的机器上运行如下命令试试
第一步:检查网络连接

ping 192.168.2.120

第二步: 查看端口是否开放

telnet  192.168.2.120 80

第三步:服务是否正常

curl -X POST http://192.168.2.120/api/report -d '{"hostname": "hostname"}'

错误信息很明显,你192.168.2.120接口连接失败,你确认接口可以正常访问?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题