如何通过python twisted HTTPClient生成POST和GET请求?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过python twisted HTTPClient生成POST和GET请求?相关的知识,希望对你有一定的参考价值。

我正在写一个HTTP客户端。这是一个简单的模拟银行网站。它需要能够发送两种请求:

  1. 用户登录时:POST / login?user = bob&pass = abc123 HTTP / 1.1主机:bank.com
  2. 当用户转账时:GET / transfer?to = badguy&amt = 100 HTTP / 1.1主机:bank.com Cookie:login = fde874

我正在通过python twisted实现它,我写了一个HTTPClient的子类:

class BankClient(HTTPClient):
    def genReq():
       # How to write code to generate and send the Two request?

    def connectionMode(self):
        genReq()



class BankCllientFactory(ClientFactory):
    protocol = BankClient
    def __init__(self):
       self.done = Defered()


def main(reactor):
   factory= BankClientFactory()
   reactor.connectTCP('localhost',8080,factory)
   return factory.done
if __name__ =='__main__':
    task.react(main)

答案

你想停止使用HTTPClient。相反,使用Agent或第三方treq

GET生成POSTAgent

from twisted.web.client import Agent
from twisted.internet import reactor
agent = Agent(reactor)
d_get = agent.request(b"GET", uri)
d_post = agent.request(b"POST", uri)

GET生成POSTtreq

import treq
d_get = treq.get(url)
d_post = treq.post(url)

以上是关于如何通过python twisted HTTPClient生成POST和GET请求?的主要内容,如果未能解决你的问题,请参考以下文章

python_如何通过twisted实现数据库异步插入?

如何通过python twisted HTTPClient生成POST和GET请求?

Twisted Python IRC Bot - 如何在 bot 运行命令时监听命令?

Python Twisted IRC,发送颜色信息

windows下python3.6 通过pip安装Twisted模块报utf-8错误的解决办法

Python:如何使用 Twisted 作为 SUDS 的传输方式?