如何将http请求发送到烧瓶服务器

时间:2016-11-13 14:51:13

标签: python linux http flask python-requests

当我的烧瓶应用程序启动时,它会显示

Running on http://0.0.0.0:80/

如何向此服务器发送http请求?

我试过

telnet 0.0.0.0 80

但它说:

Trying 0.0.0.0...
telnet: connect to address 0.0.0.0: Invalid argument

我使用了请求模块:

r = requests.get('http://0.0.0.0:80')

它说的结果相同

 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 288, in request
    resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 383, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 206, in send
    raise ConnectionError(sockerr)
requests.exceptions.ConnectionError: [Errno 22] Invalid argument

netstat的输出如下:

# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:domain          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:domain             [::]:*                  LISTEN
udp        0      0 0.0.0.0:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp6       0      0 [::]:domain             [::]:*

2 个答案:

答案 0 :(得分:2)

0.0.0.0表示“本地计算机上的所有IPv4地址”。这是一个不可路由的元地址。

如果要在本地访问服务器,即与服务器在同一台计算机上的客户端,请使用IP地址127.0.0.1(环回Internet协议)或等效的域名(localhost)

r = requests.get('http://127.0.0.1:80')
r = requests.get('http://localhost:80')

如果从远程计算机(在同一子网上)访问服务器,则可以通过运行服务的服务器的IP地址(由路由器/网关分配)连接到服务器

如果从远程计算机访问服务器,则可以通过路由器的IP地址连接到服务器。您需要通过适当的端口转发来设置虚拟服务器。

答案 1 :(得分:0)

&#34; 0.0.0.0&#34;只是一个特殊的地址来指示服务器正在监听其接口上的所有IP。

您仍然应该使用您的计算机本地地址访问它:&#34; 127.0.0.1&#34;或&#34; localhost&#34;。