使用Python2.6.4,windows
通过下面的脚本,我想测试某个xmlrpc服务器。我调用一个不存在的函数,并希望返回一个错误。相反,函数不返回。原因是什么?在
import xmlrpclib
s = xmlrpclib.Server("http://127.0.0.1:80", verbose=True)
s.functioncall()
输出为:
^{pr2}$(在这里,程序挂起,直到我关闭服务器才返回)
编辑:服务器是用c++编写的,使用它自己的xmlrpc库
编辑:发现一个看起来与相同问题http://bugs.python.org/issue1727418
最有可能的是,您正在测试的服务器在将响应发送回客户端后不会关闭TCP连接。因此,客户端挂起,等待服务器关闭连接,然后才能从函数返回。在
在服务器1.1中,你没有发现这个错误。Python在2.7和3.2中有一个针对这种有缺陷服务器的解决方法,请参见this issue,但2.6.4中没有这种解决方法。不幸的是,从2.6.5的NEWS.txt看来我们也没有把它后传到2.6.5。2.7中的解决方法的补丁是here,如果不可能修复有缺陷的服务器,也许你可以尝试将它应用到2.6.5中。。。?在
相关问题 更多 >
编程相关推荐