gpt4 book ai didi

python - 泡沫错误 : BadStatusLine in httplib

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:01 29 4
gpt4 key购买 nike

我正在使用 suds 0.3.6。创建 suds 客户端时,随机出现错误:

httplib.py,_read_status(),第 355 行,类 httplib.BadStatusLine'

这是用于创建客户端的代码:

imp = Import('http://www.w3.org/2001/XMLSchema')
imp.filter.add('http://tempuri.org/encodedTypes')
imp.filter.add('http://tempuri.org/')
self.doctor = ImportDoctor(imp)

self.client = Client(self.URL,doctor=self.doctor)

这个错误是什么意思,我该如何解决?

谢谢!

最佳答案

我遇到了同样的问题。为了解决问题,我打开了完整的泡沫记录:

logging.basicConfig(level=logging.INFO)
logging.getLogger("suds.client").setLevel(logging.DEBUG)
logging.getLogger("suds.transport").setLevel(logging.DEBUG)
logging.getLogger("suds.xsd.schema").setLevel(logging.DEBUG)
logging.getLogger("suds.wsdl").setLevel(logging.DEBUG)

通过调试输出,我注意到 SUDS 尝试下载 http://www.w3.org/2001/xml.xsd 时发生错误(该特定模式以某种方式被我试图调用的服务引用)。结果是 w3.org 服务器重载( linklink )。

SUDS Client 可以配置为使用缓存。我实现了一个缓存对象,它返回 SUDS 命中的两个 w3.org URL 的内容(您可以在日志输出中找到这些 URL)。我使用浏览器获取这两个模式并将它们保存到磁盘,然后将内容作为字符串常量放入源代码文件中。

from suds.cache import NoCache
from suds.sax.parser import Parser

class StaticSudsCache(NoCache):
def get(self, id):
STATIC = {"http://www.w3.org/2001/xml.xsd": XML_XSD,
"http://www.w3.org/2001/XMLSchema.xsd": XMLSCHEMA_XSD }
xml_string = STATIC.get(id.name)
if xml_string:
p = Parser()
return p.parse(string=xml_string)

from suds.client import Client
c = Client(service_url, cache=StaticSudsCache())

XML_XSD = """... contents from file ..."""
XMLSCHEMA_XSD = """... contents from file ..."""

包含 XML 模式内容的完整代码是 here .

关于python - 泡沫错误 : BadStatusLine in httplib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7725693/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com