0
我有兩個相互通信的http服務器。 的情況是,serverA的獲得從 「外部」 POST請求(未serverB上,通過:python中的日誌包 - 兩個簡單http服務器之間的do_POST
curl -X POST localhost:8888
),然後發送serverA的POST請求到ServerB。
這裏有do_POST功能對於每個服務器:
class serverA_handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_POST(self):
print "serverA got a POST from curl"
content_len = int(self.headers.getheader('content-length', 0))
post_body = self.rfile.read(content_len)
print "POST = ", post_body
print "serverA is sending POST to serverB"
logger = logging.getLogger('mylogger')
logger.setLevel(logging.WARNING)
logger.addHandler(HTTPHandler("localhost:9999", "/", method='POST'))
logger.warning('sending POST to serverB')
print "END DO_POST of serverA"
return
class serverB_handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_POST(self):
print "serverB got a POST from serverA"
content_len = int(self.headers.getheader('content-length', 0))
post_body = self.rfile.read(content_len)
print "POST = ", post_body
print "\nEND DO_POST serverA"
return
我運行在不同的終端兩臺服務器上,然後開始發送POST請求serverA的。
我的問題是,與每一個捲曲後,我送serverA的,我在serverB上看到,如果它recived從serverA的,再加上新的.. 以前所有的POST請求,例如:
1. curl cmd --> END DO_POST of serverA ---> END DO_POST of serverB
2. curl cmd --> END DO_POST of serverA ---> END DO_POST of serverB
END DO_POST of serverB
3. curl cmd --> END DO_POST of serverA ---> END DO_POST of serverB
END DO_POST of serverB
END DO_POST of serverB
等.. 如果我重新啓動serverA的,但保持serverB上運行,我看到的第一個週期
curl cmd --> END DO_POST of serverA ---> END DO_POST of serverB (one time)
和我繼續這個問題重演..
我的代碼有什麼問題?
謝謝,它有幫助,但我仍然不明白髮生了什麼..我在本地函數中定義了logger = logging.getLogger('mylogger')..所以它應該在從docs.python返回 時消失:addHandler() - 「將指定的處理程序hdlr添加到此記錄器。」但我的記錄器每次都是新的 – user1047069 2015-02-06 18:03:00