控制zope是否将请求解释为xmlrpc。
dm.zopepatches.xmlrpc的Python项目详细描述
此包修补Web应用程序服务器zope以允许 对将请求解释为xmlrpc请求的可自定义控制。 它实现了https://bugs.launchpad.net/zope2/+bug/373663中提出的功能
这个包已经用Zope 2.10.x进行了测试,它包含了特殊的 Zope 2.11和Zope 2.12的处理因为每一个 版本需要特定于版本的处理(表示 相应的Zope代码是不稳定的(从经常变化的意义上来说), 它很可能在其他Zope版本中失败
控制xmlrpc处理
zope内置了xmlrpc支持。不幸的是,这个支持触发了 只要“post”请求具有“text/xml”内容类型。 但是,有许多“post”请求使用“text/xml”内容类型 但不能解释为xmlrpc请求,最突出的是soap 1.1 请求。
从zope 2.12开始,zope不再使用“soapaction”处理请求 作为xmlrpc请求的头。这解决了soap 1.1的问题 请求;但是,以非常特别的方式。 这个包提供了一种易于定制的方法来控制 识别xmlrpc请求
在publisher.interfaces中,它定义接口IXmlrpcChecker。 这个接口被指定为一个由实用程序实现的接口。 当导入dm.zopepatches.publisher.interfaces时, Zope的HTTPRequest被修补,以便在 对于xmlrpc规范规定的xmlrpc请求 (“POST”请求和内容类型text/xml)满足,则 IXmlrpcChecker实用程序被查找,请求是 在找不到此类实用程序时解释为xmlrpc请求 或者应用于请求的实用程序返回true。否则, 请求被正常处理,框架的其他部分或 应用程序可以根据需要处理它。
这意味着您只需注册一个 dm.zopepatches.xmlrpc.publisher.interfaces.IXmlrpcChecker 需要控制zope的触发时的实用程序 xmlrpc支持。