标签: xml-rpc

Go 中使用嵌套 XML-RPC 解组组

我正在使用 Webfaction API 并尝试解组他们的响应以获取会话 ID(12345abcde...如下)。

当特定值嵌套在多个字段(即 params>param)下时,如何访问该特定值?

下面的代码位于http://play.golang.org/p/krG4_fXVka

package main

import ("encoding/xml"
        "fmt"
        )

type Result struct {
        XMLName xml.Name `xml:"methodResponse"`
        Values []string `xml:"params>param>value"`
}

func main() {
data := `
    <methodResponse>
<params>
    <param>
        <value><array><data>
            <value><string>12345abcde12345abcde12345</string></value>
            <value><struct>
                <member>
                    <name>username</name>
                    <value><string>trex</string></value>
                </member>
                <member>
                    <name>home</name>
                    <value><string>/home</string></value>
                </member>
                <member>
                    <name>mail_server</name>
                    <value><string>Mailbox1</string></value>
                </member>
                <member>
                    <name>web_server</name>
                    <value><string>Web12</string></value>
                </member>
                <member>
                    <name>id</name>
                    <value><int>1234</int></value>
                </member>
            </struct></value>
        </data></array></value>
    </param>
</params>
Run Code Online (Sandbox Code Playgroud)

`

v := Result{}
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
        return
} …
Run Code Online (Sandbox Code Playgroud)

xml xml-rpc go unmarshalling

2
推荐指数
1
解决办法
1734
查看次数

在 python-wordpress-xmlrpc 请求上设置自定义标头

我正在尝试使用 XMLRPC 连接到 Wordpress 博客。我正在使用最新的库 v2.3 ( http://python-wordpress-xmlrpc.readthedocs.org/en/latest/ )。

当我尝试初始化客户端时出现以下异常:

ServerConnectionError: <ProtocolError for www.myblogaddress.com/xmlrpc.php: 403 Forbidden>
Run Code Online (Sandbox Code Playgroud)

我注意到这种情况发生在检查用户名和密码之前,因此它与无效凭据没有任何关系。我相信它可能需要一些自定义标头,例如用户代理,但我不知道如何设置自定义传输参数。

我已经从 python-wordpress-xmlrpc 库复制了代码并对其进行了修改,以便我可以进行测试。这是我到目前为止所拥有的:

from xmlrpclib import Transport

class SpecialTransport(Transport):

    def send_content(self, connection, request_body):

        connection.putheader("Content-Type", "text/xml")
        connection.putheader("Content-Length", str(len(request_body)))
        connection.putheader('User-Agent', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11')

        connection.putheader('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        connection.putheader('Accept-Charset','ISO-8859-1,utf-8;q=0.7,*;q=0.3')
        connection.putheader('Accept-Encoding','none')
        connection.putheader('Accept-Language', 'en-US,en;q=0.8')
        connection.putheader('Connection', 'keep-alive')

        connection.endheaders()
        if request_body:
            connection.send(request_body)

url = "{test_url_here}"

try:
    server = xmlrpc_client.ServerProxy(url, allow_none=True, transport=SpecialTransport())
    supported_methods = server.mt.supportedMethods()

except xmlrpc_client.ProtocolError as err:

    print "A protocol error occurred"
    print "URL: %s" …
Run Code Online (Sandbox Code Playgroud)

python wordpress xml-rpc python-2.7

2
推荐指数
1
解决办法
2122
查看次数

SimpleXMLRPCServer的静音输出

我正在使用stdlib中的SimpleXMLRPCServer运行xml-rpc服务器.

我的代码看起来像这样:

import SimpleXMLRPCServer
import socket

class RemoteStarter:
    def start(self):
        return 'foo'

rs = RemoteStarter()
host = socket.gethostbyaddr(socket.gethostname())[0]
port = 9000
server = SimpleXMLRPCServer.SimpleXMLRPCServer((host, port))
server.register_instance(rs)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

每次远程调用'start'方法时,服务器都会打印一条访问行,如下所示:

<server_name> - - [10/Mar/2010 13:06:20] "POST /RPC2 HTTP/1.0" 200 -
Run Code Online (Sandbox Code Playgroud)

我无法找到一种方法来使输出静音,因此它不会将这些访问行打印到stdout.

任何人?

python xml-rpc

1
推荐指数
1
解决办法
1142
查看次数

httpclient - 使用带有POST消息的cookie

我想创建一个小型Java应用程序,将一些wiki内容从一台服务器复制到另一台服务器.API 基于XML-RPC.

基本上我有三种方法login,getPageputPage.我使用Apache HttpClient 3.x并设法login成功登录并getPage正确地从旧维基获取页面.

使用cookie处理身份验证:我登录到新的wiki,并在相应的httpclient上设置了一些cookie.doku告诉我其中一个cookie用于验证.

然后我putPage在同一个httpclient上使用另一个POST方法执行,服务器响应身份验证失败消息.

代码序列就像这样(非常简化):

HttpClient client = new HttpClient();
PostMethod postLogin = createNewPostMethod("login", "user", "pw");
client.executeMethod(postLogin);
// Now I'm logged in and the client definitly has stored the cookies
PostMethod postPutPage = createNewPostMethod("putPage", getPage());
client.executeMethod(postPutPage);  // the server won't let me put the page
Run Code Online (Sandbox Code Playgroud)

它应该像那样工作,还是我必须手动将cookie添加到第二个帖子方法,如果是,如何?


编辑/解决方案

在这个问题的答案的帮助下,我能够识别并解决问题,这超出了httpclient的使用范围.最后,它是目标维基端的配置问题.这里的答案帮助我在另一个论坛中提出正确的问题.

java xml-rpc httpclient

1
推荐指数
1
解决办法
7210
查看次数

为什么xmlrpc客户端无法通过xmlrpc服务器过程将项目附加到列表中?

服务器代码(基于Python库参考):

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ()

server = SimpleXMLRPCServer(("127.0.0.1", 8000),
                            requestHandler=RequestHandler)
server.register_introspection_functions()

l = list()

def say_hi():
    return 'hi !'

def append(event):
    l.append(event)

server.register_function(say_hi)
server.register_function(append)

server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

客户端(解释器从另一个终端窗口启动):

>>> from xmlrpc.client import ServerProxy
>>> s = ServerProxy('http://127.0.0.1', allow_none=True)
>>> s.say_hi()
'hi !'
>>> s.append(1)
Traceback (most recent call last):
...
xmlrpc.client.Fault(Fault 1: "<class 'TypeError'>:cannot
                    marshal None unless allow_none is enabled")
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我不正确地使用xmlrpc吗?

python xml-rpc simplexmlrpcserver xmlrpcclient

1
推荐指数
1
解决办法
7866
查看次数

通过C#/ vb.net应用程序向wordpress网站添加帖子/上传媒体?

有人知道是否可以通过.net应用程序添加帖子并将图像上传到wordpress博客(自托管)?

我看到我可以使用XML-RPC.net与wordpress XML-RPC接口交谈,但我看到很少的文档和样本.

.net wordpress xml-rpc

1
推荐指数
1
解决办法
2982
查看次数

找不到RPC/XML.pm Perl和RPC XML

我在尝试使用Perl的RPC XML时收到此错误消息.

软件错误:

无法在@INC中找到RPC/XML.pm(@INC包含:/ etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0/usr/lib/test.pl第9行的perl5/usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10/usr/local/lib/site_perl.)BEGIN失败 - 编译在test.pl中止第9行.如需帮助,请发送邮件给网站管理员([无地址]),提供此错误消息以及错误的时间和日期.

首先我以为我没有安装XML-RPX.但是当我查看一个phpinfo()文件时,我发现了这个:

xmlrpc_error_number 0 0

xmlrpc_errors关闭

为什么会出现这个错误?它看起来像我安装和PHP"找到它".但不是Perl.

perl xml-rpc

1
推荐指数
1
解决办法
4847
查看次数

将PHP对象或数组从一个站点传递到另一个站点?

在PHP中,如何将对象(实际上是一个数组)从一个站点传递到另一个站点(通过不丢失其原始的对象结构和值)?

  • 如何从主机站点发送/发送
  • 不要从目的地网站拉

我想通过NOT using HTML和web表单直接从自动脚本传递.
请提出任何建议.

php xml-rpc parameter-passing json-rpc

1
推荐指数
1
解决办法
8209
查看次数

如何创建具有多个点的类方法?

在python中我想创建一个带有多个点的(类)方法,以便对xmlrpc方法进行测试,这些方法可以有多个点的方法名称.当我尝试以下内容时:

class Foo(object):
    def method.with.many.dots(self):
        return 42
Run Code Online (Sandbox Code Playgroud)

我的语法无效.我也尝试过使用更复杂的想法

class Foo(object):
    def __getattr__(self, attr):
        print attr
Run Code Online (Sandbox Code Playgroud)

对于带点的方法名称,它也没有开箱即用的功能.任何想法如何我可以创建一个简单的模拟对象,我可以做类似的事情

mock.some.test.with.many.dots()
Run Code Online (Sandbox Code Playgroud)

在python代码中以一种简单的方式,无需启动xmlrpc服务器?

python xml-rpc mocking python-2.7

1
推荐指数
1
解决办法
1736
查看次数

如何使用JavaScript发送特殊的XML请求

我对XML相当陌生...

如何将以下XML发送到“ https://www.exampleserver.com ”?

<?xml version='1.0' encoding='UTF-8'?>
<methodCall>
  <methodName>ContactService.add</methodName>
  <params>
    <param>
      <value><string>privateKey</string></value>
    </param>
    <param>
      <value><struct>
        <member><name>FirstName</name>
          <value><string>John</string></value>
        </member>
        <member><name>LastName</name>
          <value><string>Doe</string></value>
        </member>
        <member><name>Email</name>
          <value><string>there_he_go@itsjohndoe.com</string></value>
        </member>
      </struct></value>
    </param>
  </params>
  </methodCall>
Run Code Online (Sandbox Code Playgroud)

javascript xml xml-rpc

1
推荐指数
1
解决办法
9790
查看次数