XMLRPC Newpaste: esperaba un objeto con la interfaz de búfer
-
25-10-2019 - |
Pregunta
en py2 había
rv = xmlrpc.pastes.newPaste(language, code, None, filename, mimetype, private)
Estoy recibiendo error: esperaba un objeto con la interfaz de búfer
No puedo encontrar ningún documento sobre XMLRPC y PY3. Encontré solo este fragmento:
p1 = subprocess.Popen(['gpg','--clearsign'], stdin = subprocess.PIPE, stdout=subprocess.PIPE)
p1.stdin.write(bytes(input, 'UTF8'))
output = p1.communicate()[0]
s = ServerProxy('http://paste.pocoo.org/xmlrpc/')
pasteid = s.pastes.newPaste('text',output.decode())
print ("http://paste.pocoo.org/raw/",pasteid,"/", sep="")
Pero todavía estoy siendo confundido al respecto ... mi versión usó muchos argumentos, ¿dónde puedo encontrar una descripción completa / arreglarlo?
Gracias.
Solución
Ese mensaje de error generalmente significa que está buscando str
(que es unicode en Python 3), no bytes
. Como en el ejemplo, deberá decodificar el argumento que está en bytes. Quizás:
rv = xmlrpc.pastes.newPaste(language, code.decode(), None, filename, mimetype, private)
Pero es difícil saber cuál es el problema sin ver su código.
Otros consejos
En Python 3. xmlrpclib
se ha dividido en dos módulos, xmlrpc.client
y xmlrpc.server
.
Los documentos para 3.2.1 se pueden encontrar en:
http://docs.python.org/release/3.2.1/library/xmlrpc.client.html
http://docs.python.org/release/3.2.1/library/xmlrpc.server.html