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

查看:1661
本文介绍了python - 通过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',))

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

解决方案

在你运行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"}'

这篇关于python - 通过requests.post+URL上传json数据报错[Errno 111] Connection refused的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆