4

我很惊讶我在 Google 搜索中找不到任何关于此的内容。

我正在使用 TwistedWeb 制作一个简单的 JSON HTTP API。我想自定义 404 页面,以便它返回 JSON 而不是默认 HTML。我该怎么做?

4

1 回答 1

1

Twisted Web 中没有像something.set404(someResource). 当资源遍历到达下一个子节点不存在的点时,默认生成NOT FOUNDIResource.getChildWithDefault响应 - 如下一次调用所示。根据您的应用程序的结构,这意味着您可能希望拥有自己的基类实现IResource,它为其所有子类创建您的自定义NOT FOUND资源(或者,更好的是,制作一个包装器,因为组合比继承更好)。

如果您阅读了实现,twisted.web.resource.Resource.getChild您会看到默认的NOT FOUND行为来自哪里,并且可能会了解如何使用不同的内容创建自己的类似行为。

于 2014-01-08T15:11:50.620 回答