作为“xmlrpc”的名称暗示的那样,这种传输协议依赖于“XML”来传递数据,不能传输二进制数据或不可打印的ASCII字符(\n、\b、chr(2)等)[或者可以吗?]。
我想知道是否有一种安全地从客户端向服务器传输字符字符串的方法,并对编码影响最小(即仅在客户端方面)。我尝试了“xmlrpclib.Binary”类,但这似乎只适用于文件。
测试代码,server.py:
预期结果:
我想知道是否有一种安全地从客户端向服务器传输字符字符串的方法,并对编码影响最小(即仅在客户端方面)。我尝试了“xmlrpclib.Binary”类,但这似乎只适用于文件。
测试代码,server.py:
def output(text):
print "-".join([str(ord(x)) for x in text])
from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost', 1234))
server.register_function(output)
server.serve_forever()
client.py:
import xmlrpclib
device = xmlrpclib.ServerProxy("http://localhost:1234/RPC2")
device.output(".\n."+chr(2))
预期结果:
46-10-46-2
在服务器端看到的结果:
xmlrpclib.Fault: <Fault 1: "<class 'xml.parsers.expat.ExpatError'>:not well-formed (invalid token): line 7, column 1">
chr(2)
字符。 - Alex