gpt4 book ai didi

html - BaseHTTPRequestHandler 卡在 self.rfile.read()

转载 作者:行者123 更新时间:2023-12-03 17:38:14 26 4
gpt4 key购买 nike

我使用 BaseHTTPRequestHandler 实现了一个 python 服务器,它通常会在从套接字文件对象读取时挂起。我读了多少字节似乎并不重要。我可以读取 30k 字节并且它不会挂起,或者我可以读取 7k 字节并且它会挂起。它正在读取一个 Base64 字符串编码的图像,所以我知道它是否需要一两秒钟才能读取,但它实际上只是挂起。

然后有时,当我按下 CTRL-C 时,它会解开并神奇地读取所有内容。这真的很奇怪。任何帮助将不胜感激。谢谢。另外,这是python2.7。

代码:

def do_POST(self):
print self.rfile
# Processing HTTP POST request data
content_len = int(self.headers.getheader('content-length'))
print 'Reading from HTTP header. Size: %s' % (content_len)

# THIS IS WHERE IT HANGS
post_body_json = self.rfile.read(content_len)

print 'Got it. Moving on, now.'
post_body = json.loads(post_body_json)
image_data = post_body.get('img_string_b64', 'No Image String')

print 'Decoding image string.'
# Processing image data
image_name = 'image.jpg'
decoded_str = base64.decodestring(image_data)
self.write_image_to_system(decoded_str, image_name)

print 'Getting text translation.'
opencv_handler = OpenCVHandler()
# Get translation from OpenCV then play text audio
text_trans = opencv_handler.get_text_translation_from_image(image_name)
opencv_handler.play_audio_translation_from_text(text_trans)

# Responding to the POST requester.
# text_trans = 'Translated'
response = text_trans
self.send_response(200) # OK
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(response)

return

最佳答案

我在调用 self.rfile.read(length) 时遇到了同样的问题,在 POST 中阻止 AJAX 请求。
这是由于较早的声明:

form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD': 'POST'}
)

一旦删除,它就起作用了。
我希望它有所帮助。

关于html - BaseHTTPRequestHandler 卡在 self.rfile.read(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43313467/

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