为了账号安全,请及时绑定邮箱和手机立即绑定

扭曲,收到来自客户端的请求后,向客户端返回自定义消息

扭曲,收到来自客户端的请求后,向客户端返回自定义消息

慕神8447489 2021-03-04 07:44:24
我已经写了一个简单的http服务器和http客户端代码,我能够从客户端以xml的形式成功地将消息发送到服务器。这是我的代码。client.pyfrom StringIO import StringIOfrom twisted.internet import reactorfrom twisted.web.client import Agentfrom twisted.web.http_headers import Headersfrom twisted.web.client import FileBodyProducerfrom xml_dict import bm_xmlxml_str = bm_xml()agent = Agent(reactor)body = FileBodyProducer(StringIO(xml_str))d = agent.request(   'GET',   'http://localhost:8080/',    Headers({'User-Agent': ['Replication'],            'Content-Type': ['text/x-greeting']}),    body)def cbResponse(response):    print response.versiond.addCallback(cbResponse)def cbShutdown(ignored):   reactor.stop()d.addBoth(cbShutdown)reactor.run()server.pyfrom twisted.web import server, resourcefrom twisted.internet import reactordef parse_xml(xml_str):  print xml_str  response = "xml_to_client"  return responseclass Simple(resource.Resource):     isLeaf = True     def render_GET(self, request):        xml_request_str = request.content.read()        response = parse_xml(xml_request_str)        print response site = server.Site(Simple()) reactor.listenTCP(8080, site)  reactor.run()我在这里尝试做的是从客户端向服务器发送xml字符串,xml是从另一个文件bm_xml模块生成的。此xml已成功读取到服务器,现在一旦服务器收到xml,我就需要解析此xml并返回另一个xml字符串。我有解析xml并构造另一个xml的代码,以便客户端从服务器接收该xml,但是我不知道如何从服务器向客户端发送消息。在服务器或客户端中需要进行哪些更改?我假设这cbresponse是必须在客户端中进行更改的操作,但是我不知道应在服务器端进行哪些更改。在服务器response变量是我需要发送给客户端的变量。
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您的代码似乎已经按照您的要求进行了。 Simple.render_GET返回response。 response是发送给客户端的内容。也许您不确定将响应发送到客户端后如何获得响应?如果是这样,答案可能是readBody(更多文档)。


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信