Как отправить xml-rpc запрос в Python?

Я просто задавался вопросом, как я смогу отправить a xml-rpc запрос в Python? Я знаю, что можно использовать xmlrpclib, но как я отсылаю запрос в xml получить доступ к функции?

Я хотел бы видеть xml ответ.

Так же в основном я хотел бы отправить следующее как мой запрос к серверу:

<?xml version="1.0"?>
<methodCall>
  <methodName>print</methodName>
  <params>
    <param>
        <value><string>Hello World!</string></value>
    </param>
  </params>
</methodCall>

и возвратите ответ

7
задан Kasramvd 2 March 2016 в 05:22
поделиться

2 ответа

Вот простой клиент XML-RPC на Python:

import xmlrpclib

s = xmlrpclib.ServerProxy('http://localhost:8000')
print s.myfunction(2, 4)

Работает с этим сервером:

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("localhost", 8000),
                            requestHandler=RequestHandler)

def myfunction(x, y):
    status = 1
    result = [5, 6, [4, 5]]
    return (status, result)
server.register_function(myfunction)

# Run the server's main loop
server.serve_forever()

Чтобы получить доступ к внутренностям xmlrpclib , то есть просматривая необработанные запросы XML и т. Д., Найдите класс xmlrpclib.Transport в документации.

13
ответ дан 6 December 2019 в 11:49
поделиться

Что вы имеете в виду, говоря "обойти"? xmlrpclib - это нормальный способ написания клиента XML-RPC на Python. Просто посмотрите исходники (или скопируйте их в свой собственный модуль и добавьте print операторы! -), если вы хотите узнать подробности того, как все делается.

0
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: