因此官方的XML-RPC标准不支持64位值.但在现代,64位值越来越普遍.
你怎么处理这些?哪些XML-RPC扩展最常见?有什么语言绑定?我对Python和C++特别感兴趣,但所有信息都值得赞赏.
我有一个django网站,有些Feed是通过FeedBurner发布的.每当我保存特定模型的实例时,我想ping FeedBurner.FeedBurner的网站说要使用XML-RPC ping机制,但我找不到很多关于如何实现它的文档.
在django/Python中执行XML-RPC ping的最简单方法是什么?
我已经创建了一个简单的Python XML-RPC实现,主要基于这些示例.
但是,它发送如下输出:
foo.bar.com - - [13/Feb/2010 17:55:47] "POST /RPC2 HTTP/1.0" 200 -
Run Code Online (Sandbox Code Playgroud)
...到终端,即使我使用>>或将标准输出和标准错误重定向到文件>.我正在使用以下行:
python foobar 2>&1 >> foobar.log
Run Code Online (Sandbox Code Playgroud)
看起来它似乎不是标准输出,而是其他地方.
此外,当收到请求时发生异常时,整个应用程序崩溃时出现此错误:
----------------------------------------
Exception happened during processing of request from ('1.2.3.4', 51284)
Run Code Online (Sandbox Code Playgroud)
我该如何处理这个异常?我需要优雅地恢复,只记录异常消息而不是服务器崩溃.
我被要求帮助朋友的公司提出一个网络应用程序.在一个条件下,我的时间非常有限,我不情愿地接受了这个请求.由于大多数逻辑都在后端进行,我建议我只完成整个后端,允许前端开发人员简单地与我的后端接口.
我打算用Java EE或Python(用Pylons)做后端.在这一点上并不重要.我打算让我的后端完全准备好并进行单元测试,以便在我的工作完成后几乎不需要我的输入.
我知道他们有一个PHP程序员,但据我所知,他是一个真正的新秀.我希望他能够以最简单的方式与我的后端服务进行基本接口,而不会让他"填充"它.它基本上只是一个CRUD应用程序.
我可以通过Web服务(如XML-RPC或SOAP)实现后端.即使是RESTful API也是可能的.
但是,我的主要目标是制作一些完整的"noob"PHP程序员可以轻松地与之交互而不会混淆.我最好甚至不想和他说话,因为我的日程安排非常繁忙,做"支持电话"并不是我愿意做的事情.我应该选择哪种方法?我欢迎任何建议和意见!
我正在访问一个Web服务并在尝试连接时收到此错误(Web服务是XMLRPC,我使用wordpress xmlrpc源代码请求和处理repsonse):
错误域= NSURLErrorDomain代码= -1202"此服务器的证书无效.您可能正在连接到假装为" ** .org" 的服务器,这可能会使您的机密信息面临风险."
WebService的人说要忽略证书验证部分,所以如果有人知道怎么做,那将对我有很大的帮助.
在一些建议之后我使用了下面的NSURLConnection委托,stil同样的错误
-(BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
}
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
if ([trustedHosts containsObject:challenge.protectionSpace.host])
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
Run Code Online (Sandbox Code Playgroud) 我目前正在使用XML-RPC检索数据,这就是我所拥有的:
Object[] params = new Object[]{param1, param2};
Object[] obj = new Object[]{};
try {
obj = (Object[]) client.execute("method.name", params);
} catch (XmlRpcException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
Run Code Online (Sandbox Code Playgroud)
问题是,有时它会返回-1,我会得到这个错误:java.lang.Integer不能转换为[Ljava.lang.Object; - 我想知道是否有解决这个问题的办法?
我很抱歉提出这个问题,但我花了好几个小时试图了解每个人在Web服务中的位置.我无法理解我需要使用什么来创建Web服务.
我知道Web服务可以是.Net或Java或PHP.假设我想使用C#在.NET中创建Web服务.SOAP,XML-RPC或JSON什么时候出现?
谢谢!
我正在申请godatafeed.com的帐户,他们说我的网站没有启用xml-rpc.我检查了所有设置,但我找不到任何相关的内容.
我检查了一些网站,他们说要尝试浏览这个网址"
http://www.theprinterdepo.com/index.php/api/xmlrpc/ http://www.theprinterdepo.com/index.php/api/?wsdl
第二个工作,第一个没有显示任何东西.
我该如何启用此服务?
正如其名称xmlrpc所暗示的,该传送协议依赖于XML携带数据,而不能传输二进制数据,或不可打印的ASCII字符(\ N,\ B,CHR(2),...)或者可以吗?].
我想知道是否有一种方法可以将字符串从客户端安全地传输到服务器,而对编码的影响最小(即仅在客户端).我尝试了这个xmlrpclib.Binary类,但这似乎只适用于文件.
Testcode,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()
Run Code Online (Sandbox Code Playgroud)
client.py:
import xmlrpclib
device = xmlrpclib.ServerProxy("http://localhost:1234/RPC2")
device.output(".\n."+chr(2))
Run Code Online (Sandbox Code Playgroud)
预期结果:
46-10-46-2
Run Code Online (Sandbox Code Playgroud)
看到的结果(在服务器端):
xmlrpclib.Fault: <Fault 1: "<class 'xml.parsers.expat.ExpatError'>:not well-formed (invalid token): line 7, column 1">
Run Code Online (Sandbox Code Playgroud) 我stock.picking使用一个新方法扩展了模型,该方法do_new_transfer_xmlrpc启用了XMLRPC的基本new_transfer.
class Picking(models.Model):
_inherit = 'stock.picking'
@api.multi
def do_new_transfer_xmlrpc(self):
print 'DEBUG'
self.do_transfer()
return ['OK', '']
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法调用该方法:
api.execute_kw(db, uid, pwd, 'stock.picking', 'do_new_transfer_xmlrpc', [[int(picking_id)], {}])
Run Code Online (Sandbox Code Playgroud)
但我得到:
Fault: <Fault 1: 'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/odoo/service/wsgi_server.py", line 56, in xmlrpc_return\n result = odoo.http.dispatch_rpc(service, method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 118, in dispatch_rpc\n result = dispatch(method, params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 38, in dispatch\n res = fn(db, uid, *params)\n File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 157, in execute_kw\n return execute(db, uid, obj, method, *args, …Run Code Online (Sandbox Code Playgroud)