我目前正在用python/twisted構建一個http服務器。扭曲的延期請求和文件與ErrorPage
該服務器必須獲取另一個Web服務器上的內容,將其存儲在本地並將響應發送回客戶端。如果遇到404,它必須嘗試提供本地文件,否則將失敗,如果根本沒有本地文件。
爲了達到這個目的,我使用了不同的請求。我的代碼大致是這樣的:
class RemoteFile(Resource):
isLeaf = True
def render_GET(self, request):
# Start downloading the corresponding file on the remote server
# Will call `self.serve_local_file` when done
return NOT_DONE_YET
def serve_local_file(self, request):
if self.file_exists_for_request(request):
fileResource = File(filename)
fileResource.render(request)
else:
page = NoResource("No such file")
html = page.render(request)
# The next two lines are my problem
request.write(html)
request.finish()
我不得不在最後兩行(write()
和finish()
),以獲得實際完成的要求添加。我不需要這些行來處理File
資源,因爲它與NoResource不同,它本身處理寫入/完成操作。
這不是問題本身,但事實證明,這page
變量沒有硬編碼的,它實際上是在我的課,這應該是一個Resource
一個fallback
屬性。這意味着我將來可以用默認的File
替換它。在這種情況下,我將不得不修改我的代碼...
我做錯了什麼,或者這是不一致的接口File
和ErrorPage
?
請包含一個完整的可運行示例,以便我們可以實際運行某些內容並查看行爲是什麼,而不是猜測。 – Glyph