擅长:python、mysql、java
<p>作为一个很难理解python网络的一些常见陷阱的人,我添加这个答案是为了强调一个重要但容易混淆的要点,即<code>requests.get()</code>的<strong>第一个参数:</p>
<p><code>localhost</code>是计算机解析为其自身环回适配器的IP地址<code>127.0.0.1</code>的别名。<code>foo.com</code>也是一个别名,只是一个在远离宿主的地方得到解析的别名。</p>
<pre><code>requests.get('foo.com:4028') #<--fails
requests.get('http://foo.com:4028') #<--works usually
</code></pre>
<p>对于环回:</p>
<pre><code>requests.get('http://127.0.0.1:4028') #<--works
requests.get('http://localhost:4028') #<--works
</code></pre>
<p>这一个需要<code>import socket</code>&;为您提供主机的本地ip(也就是您在自己局域网中的地址);它与主机的距离比只调用<code>localhost</code>要远一点,但不是一直到开放的internet:</p>
<pre><code>requests.get('http://{}:4028'.format(socket.gethostbyname(socket.gethostname()))) #<--works
</code></pre>