2
私はthis Virtuoso Web Service exampleに従っています。私のPOSTからの応答はゼロではない.lengthですが、.read()は空です。これは、POSTが成功した場合にのみ発生します。私が意図的に間違いを犯すと、ゼロ以外の.read()が得られます。あなたが意図的にXML(例えば、 "クエリ" >> "queryzzzを")malform場合POST応答の長さはゼロではありませんが、読み取りは空です
import httplib
url = 'lod.openlinksw.com'
xmlString = '''<?xml version="1.0"?>
<query xmlns="http://openlinksw.com/services/facets/1.0" inference="" same-as="">
<text>Seattle Mariners traveled all the way to Japan to watch</text>
<view type="text" limit="20" offset=""/>
</query>'''
xml = open('a.xml','w')
xml.write(xmlString)
xml.close()
xml = open('a.xml')
headers = {'Content-Type': 'text/xml',}
conn = httplib.HTTPConnection(url)
conn.request("POST", "/fct/service", xml, headers)
re = conn.getresponse()
conn.close()
data = re.read()
print re.reason, re.status, '| len:', re.length, '| read() len:', len(data)
戻る...
OK 200 | len: 19902 | read() len: 0
...
Internal Server Error 500 | len: 0 | read() len: 340
私は私は確信していますちょうど何かばかげている。私の19902バイト応答はどこですか?
re.length()にはヘッダーの長さが含まれていますか? – pycoder112358