【问题标题】:using python [xmlrpc frontend] modules on google app engine to connect to a wordpress blog在谷歌应用引擎上使用 python [xmlrpc frontend] 模块连接到 wordpress 博客
【发布时间】:2013-11-12 11:59:18
【问题描述】:

我正在使用 pyblog 模块(python 博客)[见 P.S.在 wordpress_xmlrpc 的底部] 自动操作 wordpress 博客,建议 here。 Pyblog家page描述了一个简单的使用脚本:

import pyblog
blog = pyblog.WordPress('http://www.example.com/blog/xmlrpc.api', 'USERNAME', 'PASSWORD')
print blog.get_recent_posts()

当我在本地运行它时,脚本运行良好。但是当我在谷歌应用引擎上部署它时,我遇到了关于blog.get_recent_posts行的以下错误:

return self.execute('metaWeblog.getRecentPosts', blogid, self.username, self.password, numposts)
File "/base/data/home/apps/myappname/1.371326087278559778/pyblog.py", line 93, in execute
raise BlogError(fault.faultString)
BlogError: parse error. not well formed

指的是pyblog.py中的以下几行:

try:
    r = getattr(self.server, methodname)(args)
except xmlrpclib.Fault, fault:
    raise BlogError(fault.faultString)

去掉try/except出现的错误表示为:

Fault -32700: 'parse error. not well formed'

如何解决?

P.S.:我尝试过使用 python-wordpress-xmlrpc 库的类似脚本。 运行建议的示例脚本 here

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo

wp = Client('http://mysite.wordpress.com/xmlrpc.php', 'username', 'password')
wp.call(GetUserInfo())
<WordPressUser: max>

引发同样的错误!

【问题讨论】:

  • 看看here,好像是wordpress的一个bug。您可以打印从 wordpress 收到的内容吗?如果是同样的问题,您应该会看到格式错误的 html。

标签: python wordpress api google-app-engine xml-rpc


【解决方案1】:

我怀疑问题在于 GAE 在基础上阻止了任何不使用其 URLFetch 服务的出站请求;例如,您不能使用普通的套接字。 Google 的 urllib 等版本已被修改,以便它们在内部使用 URLFetch。

Here's 一篇古老但非常详尽的文章,讨论了类似的 XMLRPC 情况并提供了一些解决方案。

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多