I don't think POST is the only thing we would want to support.
I believe GET also receives user data, such as groups user has access to.
I don't completely understand the functionality of XMLRPC, so I'll describe the problems I've experienced.
1. My ljl client receives a server error when trying to POST. 2. A similar problem occurs with https://github.com/daniilr/python-lj 3. python-lj queries against Dreamwidth's XMLRPC. 4. When going to XMLRPC on the dreamwidth.org domain, you receive an error. LJ's domain does not have this problem.
GET can only be used for idempotent things that don't change any state, and I don't believe there is anything in our API that is really idempotent + doesn't change state?
Anyway, moot point since it sounds like you're also having problems with third party clients trying to do POST requests. I did some investigation and it looks like the problem is that the `python-lj` library is using insecure HTTP which is explicitly no longer supported. Someone will have to fix that.
So, I don't believe that not supporting GET has anything to do with the problem here, it's just a broken client not accessing the secured HTTPS endpoint correctly.
For DW, just subclass LJServer and create DWTransport to use xmlrpclib.SafeTransport instead of xmlrpclib.Transport. (Or don't bother and just straight use xmlrpclib.SafeTransport, sure, whatever:P) try: import xmlrpc.client as xmlrpclib except ImportError: import xmlrpclib try: import urllib.request as urllib2 except ImportError: import urllib2
no subject
I don't think the API does anything with GET requests thought? I feel like POST is the only thing we'd want to support?
no subject
I don't think POST is the only thing we would want to support.
I believe GET also receives user data, such as groups user has access to.
I don't completely understand the functionality of XMLRPC, so I'll describe the problems I've experienced.
1. My ljl client receives a server error when trying to POST.
2. A similar problem occurs with https://github.com/daniilr/python-lj
3. python-lj queries against Dreamwidth's XMLRPC.
4. When going to XMLRPC on the dreamwidth.org domain, you receive an error. LJ's domain does not have this problem.
some documentation on how xmlrpc works
no subject
Anyway, moot point since it sounds like you're also having problems with third party clients trying to do POST requests. I did some investigation and it looks like the problem is that the `python-lj` library is using insecure HTTP which is explicitly no longer supported. Someone will have to fix that.
So, I don't believe that not supporting GET has anything to do with the problem here, it's just a broken client not accessing the secured HTTPS endpoint correctly.
no subject
Thank you.
no subject
For DW, just subclass LJServer and create DWTransport to use xmlrpclib.SafeTransport instead of xmlrpclib.Transport. (Or don't bother and just straight use xmlrpclib.SafeTransport, sure, whatever:P)
try:
import xmlrpc.client as xmlrpclib
except ImportError:
import xmlrpclib
try:
import urllib.request as urllib2
except ImportError:
import urllib2
from lj import lj
class DWTransport(xmlrpclib.SafeTransport):
pass
class DWServer(lj.LJServer):
def __init__(self, clientversion, user_agent, host='https://www.dreamwidth.org/'):
super().__init__(clientversion, user_agent, host)
transport = DWTransport()
transport.user_agent = user_agent
self.server = xmlrpclib.ServerProxy(host + 'interface/xmlrpc', transport)
dreamwidth = DWServer("Python-Blog3/1.0", "http://yoursite.com; your@email.com")
dreamwidth.login(username, password)
response = dreamwidth.postevent(subject, message)
no subject
no subject
no subject