有没有什么理由不将XML-RPC用于对象代理服务器/客户端架构?也许类似"没有它已经过时,现在有X".
为了提供更多细节:我想构建一个框架,允许标准化交互和许多小工具(例如命令行工具)之间的结果交换.如果有人想要集成另一个工具,她会为此目的编写一个包装器.例如,包装器可以将工具的STDOUT转换为架构可用的对象.
目前我正在考虑用Python编写概念证明服务器.之后它可以用C/C++重写.为了确保客户端可以用尽可能多的语言编写,我想到了使用XML-RPC.CORBA似乎过于臃肿,因为服务器不应该太复杂.
感谢您的建议和意见,Rainer
我正在考虑将SMS功能添加到我的WCF服务.我找到了一个名为Penny SMS的廉价短信服务.
他们的界面支持json.但我不知道如何在我的WCF服务中调用它.
这是接口/示例:
示例JSON-RPC请求
{ "method": "send",
"params": [
"YOUR_API_KEY",
"msg@mycompany.com",
"5551231234",
"Test Message from PENNY SMS"
]
}
Run Code Online (Sandbox Code Playgroud)
如何从WCF服务使用C#调用它?我正在寻找的是一种将其包装到方法调用中的方法.就像是:
StaticSMSClass.SendSMS("1234567890", "My Message to send");
Run Code Online (Sandbox Code Playgroud)
请注意,如果C#更可行,它们也支持XML-RPC API.
更新:我自己创建了一个电话,但它没有用.我将在一个单独的问题中发布我的尝试,看看是否有人有办法做到这一点.
我正在尝试在Ruby 1.9中使用内置的XMLRPC.不幸的是,XMLRPC没有记录在ruby-docs.org上,所以我试图根据google发现的例子构建一个测试代码:
# Server.rb
require "xmlrpc/server"
server = XMLRPC::Server.new( 1234 )
server.add_handler( "test" ) { |msg| return "responce for #{msg}" }
server.serve()
# Client.rb
require "xmlrpc/client"
server = XMLRPC::Client.new( "localhost", "/", 1234 )
server.call( "test", 42 ) == "responce for 42"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不适用于Windows和OSX.Server.rb失败的神秘错误:
C:/Ruby193/lib/ruby/1.9.1/xmlrpc/client.rb:414:in `call': Uncaught exception unexpected return in method test (XMLRPC::FaultException)
from client.rb:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
也许有人知道我的错误是什么?
我正在尝试使用xmlrpclib python的lib执行XMP-RPC,但是我正在
xml.parsers.expat.ExpatError: XML or text declaration not at start of entity: line 1, column 1
Run Code Online (Sandbox Code Playgroud)
这是带有参数的字典:
{'cliente_chave': 'hUi238sh328sjk37Hms8Kisjeg9',
'cliente_codigo': 164,
'imovel_bairro': u'Renascen\xe7a',
'imovel_banheiros': u'5',
'imovel_cidade': u'S\xe3o Lu\xeds - MA',
'imovel_codigo_imobiliaria': u'757',
'imovel_descricao': u'\n\t\t\t\n\t\t\tCasa em otima localiza\xe7\xe3o ideal tanto para empresas quanto para moradia tendo:\r\nTerra\xe7o\r\nSala Ampla para 03 ambientes\r\nLavabo\r\nHall\r\n03 su\xedtes\r\nEscritorio\r\nCozinha\r\nQuintaL\r\n\xc1rea de Servi\xe7o\r\nDCE\r\nGaragem coberta para 02 carros\r\nPort\xe3o eletronico\r\nCisterna\r\nNascente',
'imovel_estado': 'MA',
'imovel_negociacao': 'venda',
'imovel_novo': False,
'imovel_quartos': u'3',
'imovel_subtipo': u'padr\xe3o',
'imovel_suites': u'3',
'imovel_tipo': u'casa',
'imovel_vagas': u'2',
'imovel_valor': u' 480.000,00',
'url': 'http://www.estiloma.com.br/imoveis/para-venda/em-sao-luis/no-bairro-renascenca/casa-padrao/id-774.html'}
Run Code Online (Sandbox Code Playgroud)
这是对异常的追溯:
Traceback …Run Code Online (Sandbox Code Playgroud) 我发现了一些使用的示例,model = 'res.partner'但我想使用其他模型。我试过 res.product 但这没有用。如何获得可用模型的列表?
所以我有一个 XMLRPC 服务器,它有一个名为 start_apps 的命令
通常从 python 我会像这样运行它
import xmlrpclib
app=xmlrpclib.ServerProxy("http://localhost:6610/app_rpc")
app.start_apps()
Run Code Online (Sandbox Code Playgroud)
有没有办法从 curl 命令调用这个方法?
我对 bash 或 powershell 感兴趣
我试图弄清楚在 Laravel 5.4 中使用 xml-rpc 我正在使用 Open HttpRequester 向 Laravel 发送 xml 请求,它返回 200 OK 状态代码,但我无法处理请求数据。
我仅使用一种方法(testMethod)将请求路由到控制器,内容如下:
public function testMethod(Request $request) {
$req = xmlrpc_decode_request($request, $method);
print_r($req);
print_r($request->toArray());
}
Run Code Online (Sandbox Code Playgroud)
我的 XML 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>testMethod</methodName>
<params>
<param>
<value>
<string>Test value 1</string>
</value>
</param>
</params>
</methodCall>
Run Code Online (Sandbox Code Playgroud)
该请求仅返回一个空数组。
我究竟做错了什么?
编辑:
添加一些额外的代码。
路线:
Route::post('/request', 'RequestController@testMethod');
Run Code Online (Sandbox Code Playgroud)
原始请求:
POST http://localhost/laratest/public/index.php/request
User-Agent: /
Host: localhost
Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>testMethod</methodName>
<params>
<param>
<value>
<string>Test value 1</string>
</value>
</param>
</params>
</methodCall>
Run Code Online (Sandbox Code Playgroud)
响应:(我正在使用 Open …
我无法将图像转换为 base64 并通过 xml-rpc 客户端发送它,xml-RPC 服务器响应并给出此错误
需要一个类似字节的对象,而不是“_io.BufferedReader”
import base64
with open(full_path, 'rb') as imgFile:
image = base64.b64encode(imgFile)
Run Code Online (Sandbox Code Playgroud) 我想知道将 xmlrpc 与 node.js 结合使用的最佳方法是什么,有一个 npm 插件,但我找不到如何使用它。谢谢你!
你好
我需要将 PHP 8.0 的应用程序连接到 Odoo。我收到以下错误。
PHP XMLRPC library is not installed
Run Code Online (Sandbox Code Playgroud)
如何在 macOS 上安装这个库?