我的计算机上有 2 个具有特定掩码和 IP 的网络(用于互联网的 Wifi 网络和基于有线电缆的本地网络)(此配置有效)。
我有一个用于本地网络的 Python HTTP 服务器(在我的计算机上):
或者简单地
>>> python server.py
Serving on localhost:8000
You can use this to test GET and POST methods.
"""
import SimpleHTTPServer
import SocketServer
import logging
import cgi
import sys
if len(sys.argv) > 2:
PORT = int(sys.argv[2])
I = sys.argv[1]
elif len(sys.argv) > 1:
PORT = int(sys.argv[1])
I = ""
else:
PORT = 8000
I = ""
class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
print "======= GET STARTED ======="
logging.warning("======= GET STARTED =======")
logging.warning(self.headers)
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
def do_POST(self):
print "======= POST STARTED ======="
logging.warning("======= POST STARTED =======")
logging.warning(self.headers)
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
logging.warning("======= POST VALUES =======")
for item in form.list:
logging.warning(item)
logging.warning("\n")
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
Handler = ServerHandler
httpd = SocketServer.TCPServer(("10.0.0.2", PORT), Handler)
print "@rochacbruno Python http server version 0.1 (for testing purposes only)"
print "Serving at: http://%(interface)s:%(port)s" % dict(interface=I or "localhost", port=PORT)
httpd.serve_forever()
我只是想尝试一下这个服务器是否工作:从我的 Google CHrome,我设置了这个 URL:10.0.0.2/?method=1234
并且 Python shell 上没有出现任何痕迹...
所以,我的问题是:如何首先从我的计算机测试这个 Python 服务器(以确保它有效)?
好的,我发现问题了:是端口号;例如,我将其更改为 888,现在可以使用了:-)
安东尼
您的代码在 2017 年抛出以下错误:
socket.error:[Errno 10049] 请求的地址在其上下文中无效
该错误是由以下代码行引起的:
httpd = SocketServer.TCPServer(("10.0.0.2", PORT), Handler)
当IP“10.0.0.2”更改为“127.0.0.1”时,无论您的端口更新如何8000 -> 888,它都会再次工作。享受吧!