本地协议错误(h11._util.LocalProtocolError):当角色为SERVER且状态为MUST_CLOSE时无法处理响应事件类型。
创始人
2024-11-30 07:30:19
0

这个错误通常是由于在能够处理HTTP响应之前关闭了连接而导致的。要解决这个问题,我们需要确保客户端在处理完所有响应之前不会关闭连接。

下面是一个示例代码,其中一个常见问题就是在处理完第一个响应后立即关闭连接:

import h11
import socket

conn = h11.Connection(h11.SERVER)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('example.com', 80))

s.sendall(b'GET /index.html HTTP/1.1\r\nHost: example.com\r\n\r\n')
event = conn.next_event()
if type(event) == h11.NEED_WRITE:
    s.sendall(conn.send(event))

while True:
    event = conn.next_event()
    if type(event) == h11.RESPONSE:
        print(f"Received response: {event}")
        # 处理响应数据

        # 不要在这里关闭连接
    elif type(event) == h11.NEED_DATA:
        data = s.recv(1024)
        if not data:
            break
        conn.receive_data(data)
        s.sendall(conn.send(event))
    elif type(event) == h11.ConnectionClosed:
        # 连接关闭时再关闭
        s.close()
        break

在这个修复后的示例代码中,我们等待直到所有响应都被完全处理后才关闭连接。这将确保我们不会再遇到这个错误。

相关内容

热门资讯

两分钟辅助!开心泉州小程序开挂... 两分钟辅助!开心泉州小程序开挂有什么技巧,原来真的是有辅助插件(有挂教学)开心泉州小程序开挂有什么技...
七分钟辅助!奇迹脚本辅助,真是... 七分钟辅助!奇迹脚本辅助,真是有辅助软件(确实有挂)1、超多福利:超高返利,海量正版游戏,奇迹脚本辅...
一分钟辅助!天天贵阳智能辅助器... 一分钟辅助!天天贵阳智能辅助器,原来是有辅助脚本(真的有挂)亲,关键说明,天天贵阳智能辅助器透视脚本...
3分钟辅助!一起宁德钓蟹黑科技... 3分钟辅助!一起宁德钓蟹黑科技辅助软件推荐,其实真的有辅助挂(有挂存在)1、玩家可以在一起宁德钓蟹黑...
第二分钟辅助!大菠萝789辅助... 第二分钟辅助!大菠萝789辅助器下载,原来存在有辅助挂(存在有挂)运大菠萝789辅助器下载辅助工具,...
3分钟辅助!科乐填坑辅助,原来... 3分钟辅助!科乐填坑辅助,原来真的是有辅助器(有挂方略)1、下载好科乐填坑辅助透视辅助下载之后点击打...
3分钟辅助!潮友会透视辅助教程... 3分钟辅助!潮友会透视辅助教程,果然存在有辅助器(有挂辅助)亲,关键说明,潮友会透视辅助教程透视脚本...
4分钟辅助!福建兄弟十三冰修改... 4分钟辅助!福建兄弟十三冰修改器,本来真的是有辅助app(有挂讲解)1、游戏颠覆性的策略玩法,独创攻...
第二分钟辅助!wepoker插... 第二分钟辅助!wepoker插件程序,真是是真的有辅助技巧(有挂细节)1、不需要AI权限,帮助你快速...
1分钟辅助!悠悠互娱辅助,真是... 1分钟辅助!悠悠互娱辅助,真是是有辅助神器(有挂解密)悠悠互娱辅助透视方法中分为三种模型:悠悠互娱辅...