有人能让我理解这段扭曲的代理代码中connectionMade的定义吗?

2024-06-23 19:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

def connectionMade(self):

    self.factory.request.channel.connectedRemote = self
    self.factory.request.setResponseCode(200, "CONNECT OK")
    self.factory.request.setHeader('X-Connected-IP',
                                   self.transport.realAddress[0])
    self.factory.request.setHeader('Content-Length', '0')
    self.factory.request.finish()

上面的代码实际上是做什么的? 还有为什么setHeader被两次用来设置头?你知道吗


Tags: selfiprequestfactorydefconnectchannelok
1条回答
网友
1楼 · 发布于 2024-06-23 19:35:10

这条线将工厂存储在连接的通道中

self.factory.request.channel.connectedRemote = self

这将答案设置为200:这是一个HTTP代码,用于表示asnwer是正确的

self.factory.request.setResponseCode(200, "CONNECT OK")

这两行向应答添加了两个头,因此它被调用了两次;一个用于HTTP客户机理解应答所需的每个头

self.factory.request.setHeader('X-Connected-IP',
                               self.transport.realAddress[0])
self.factory.request.setHeader('Content-Length', '0')

这行代码向工厂发出信号,表明请求已正确完成,可能会刷新相关流

self.factory.request.finish()

相关问题 更多 >

    热门问题