HTTP Server Python:如何在本地测试它?

问题描述 投票:0回答:2

我的计算机上有 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 服务器(以确保它有效)?

get localhost httpserver
2个回答
0
投票

好的,我发现问题了:是端口号;例如,我将其更改为 888,现在可以使用了:-)

安东尼


0
投票

您的代码在 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,它都会再次工作。享受吧!

© www.soinside.com 2019 - 2024. All rights reserved.