Cloud9 Python XMLRPC 服务器 302 重定向

0 投票
1 回答
1193 浏览
提问于 2025-04-29 08:27

我正在使用Python和Cloud9,想要搭建一个简单的XMLRPC服务器。如果我在本地运行这个,没什么问题。但在Cloud9上,我遇到了一个错误,提示“协议错误302,临时移动”。

有没有什么想法?

服务器的代码是:

from SimpleXMLRPCServer import SimpleXMLRPCServer
import logging
import os

ip = os.getenv("IP", "0.0.0.0")
port = int(os.getenv("PORT", 8080))

logging.basicConfig(level=logging.DEBUG)

server = SimpleXMLRPCServer((ip, port), logRequests=True)

def list_contents(dir_name):
    logging.debug('list_contents(%s)', dir_name)
    return dir_name
server.register_function(list_contents)

try:
    print 'Use Control-C to exit'
    server.serve_forever()
except KeyboardInterrupt:
    print 'Exiting'

客户端的代码是:

import xmlrpclib

url = "https://xxxxx.c9.io/"
srv = xmlrpclib.ServerProxy(url, verbose=True)
print srv.list_contents("asdf")
暂无标签

1 个回答

4

302响应通常是把你重定向到一个需要登录的页面,以检查你是否有权限访问这个应用。如果你把工作区设置成私密的(也就是不允许未登录的用户访问),那么你每次请求都会得到这个响应。

你可以选择把它公开分享(点击分享 -> 点击“应用”让它变成公开的),或者在客户端请求的URL中提供用户名和密码:

url = "https://username:password@workspace-c9-user.c9.io/" 

撰写回答