Peter Bengtsson wrote:
I have set up a URL with a SMS-sending company. Basically, we set up so that http://ourhost:port/Folder/SMS/Receive should get the XML when someone sends an SMS to a particular number.
How do I in Zope, or rather, in this External Method accept the XML? Once I get the XML-Schema in as a string I'll know what to do with it, but I'm not there yet.
[NB: Invoking the URL manually in the browser works and even though it's just very basic debugging, it returns something without errors] If I try to standalone manually send an XML request using httplib as I think they'll send it to us I get this error in response:
<strong>Error Type: ResponseError</strong><br> <strong>Error Value: <xmlrpclib.ResponseError instance at 0x92b7ba4></strong><br>
Traceback (innermost last): File /local/home/peterbe/Zope-2.5.1-src/lib/python/ZPublisher/Publish.py, line 150, in publish_module File /local/home/peterbe/Zope-2.5.1-src/lib/python/ZPublisher/Publish.py, line 114, in publish File /local/home/peterbe/Zope-2.5.1-src/lib/python/Zope/__init__.py, line 159, in zpublisher_exception_hook (Object: Zope) File /local/home/peterbe/Zope-2.5.1-src/lib/python/ZPublisher/Publish.py, line 63, in publish File /local/home/peterbe/Zope-2.5.1-src/lib/python/ZPublisher/HTTPRequest.py, line 357, in processInputs File /local/home/peterbe/Zope-2.5.1-src/lib/python/ZPublisher/xmlrpc.py, line 47, in parse_input File /local/home/peterbe/Zope-2.5.1-src/lib/python/xmlrpclib.py, line 532, in loads File /local/home/peterbe/Zope-2.5.1-src/lib/python/xmlrpclib.py, line 369, in close ResponseError: (see above)
Why xmlrpclib?
Read the source, Luke ;) In HTTPRequest.py: 351 if (fs.headers.has_key('content-type') and 352 fs.headers['content-type'] == 'text/xml' and 353 method == 'POST'): 354 # Ye haaa, XML-RPC! 355 global xmlrpc 356 if xmlrpc is None: import xmlrpc 357 meth, self.args = xmlrpc.parse_input(fs.value) Zope thinks you want to do xmlrpc, which you don't - I think you just want to get a string, which contains XML. That's not xml-rpc.
Basically, how do I get the XML-Schema in as a string to work with from the XML request?
I'd expect the request to come in as a normal HTTP-POST, encoded like a form (i.e. "application/x-www-form-urlencoded" or "multipart/form-data"), so that you can get to the encoded string using the standard methods. HTH, oliver