gpt4 book ai didi

python - 无法返回 http.client getresponse() 对象

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:41 25 4
gpt4 key购买 nike

我无法将 HTTPResponse 对象从被调用函数传递回调用者。

def caller():
r = called()
with open('/some/file/', 'wb') as f:
f.write(r.read())


def called():
conn = http.client.HTTPSConnection('/some/host',
'some port',
'some ssl.Context')
conn.request('GET', '/some/url', {'some': 'headers'})
r = conn.getresponse()
conn.close()
return r

执行上述操作时,它会创建文件,但不会写入任何内容。但是,如果我执行以下操作:

def caller():
r = called()
with open('/some/file/', 'wb') as f:
f.write(r)


def called():
conn = http.client.HTTPSConnection('/some/host',
'some port',
'some ssl.Context')
conn.request('GET', '/some/url', {'some': 'headers'})
r = conn.getresponse()
c = r.read()
conn.close()
return c

它执行得很好,有适当的返回并写入文件。后者并不理想,因为我需要调用 conn.close() 来强制终止服务器连接。

问题:

Why can I not return a getresponse() object?

最佳答案

这是因为在第一种情况下你正在调用

conn.close()

然后从中读取。

关于python - 无法返回 http.client getresponse() 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45816861/

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