diff options
author | mathieui <mathieui@mathieui.net> | 2015-10-02 19:07:45 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2015-10-02 19:07:45 +0200 |
commit | ada9444bf84bd238238c4d22561f69184dd22cdd (patch) | |
tree | ceb4f86446b4129ec22cb348f1cb1bd7a151e2da /slixmpp/plugins/xep_0332/stanza/request.py | |
parent | 1100ff1febf7e605e03fd9565bdac5fdaa3bf1e0 (diff) | |
parent | acc52fd935b7e74919ad748f3a630596f66c62af (diff) | |
download | slixmpp-ada9444bf84bd238238c4d22561f69184dd22cdd.tar.gz slixmpp-ada9444bf84bd238238c4d22561f69184dd22cdd.tar.bz2 slixmpp-ada9444bf84bd238238c4d22561f69184dd22cdd.tar.xz slixmpp-ada9444bf84bd238238c4d22561f69184dd22cdd.zip |
Merge branch 'sleek-merge'
Diffstat (limited to 'slixmpp/plugins/xep_0332/stanza/request.py')
-rw-r--r-- | slixmpp/plugins/xep_0332/stanza/request.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/slixmpp/plugins/xep_0332/stanza/request.py b/slixmpp/plugins/xep_0332/stanza/request.py new file mode 100644 index 00000000..e3e46361 --- /dev/null +++ b/slixmpp/plugins/xep_0332/stanza/request.py @@ -0,0 +1,71 @@ +""" + slixmpp: The Slick XMPP Library + Implementation of HTTP over XMPP transport + http://xmpp.org/extensions/xep-0332.html + Copyright (C) 2015 Riptide IO, sangeeth@riptideio.com + This file is part of slixmpp. + + See the file LICENSE for copying permission. +""" + +from slixmpp.xmlstream import ElementBase + + +class HTTPRequest(ElementBase): + + """ + All HTTP communication is done using the `Request`/`Response` paradigm. + Each HTTP Request is made sending an `iq` stanza containing a `req` + element to the server. Each `iq` stanza sent is of type `set`. + + Examples: + <iq type='set' from='a@b.com/browser' to='x@y.com' id='1'> + <req xmlns='urn:xmpp:http' + method='GET' + resource='/api/users' + version='1.1'> + <headers xmlns='http://jabber.org/protocol/shim'> + <header name='Host'>b.com</header> + </headers> + </req> + </iq> + + <iq type='set' from='a@b.com/browser' to='x@y.com' id='2'> + <req xmlns='urn:xmpp:http' + method='PUT' + resource='/api/users' + version='1.1'> + <headers xmlns='http://jabber.org/protocol/shim'> + <header name='Host'>b.com</header> + <header name='Content-Type'>text/html</header> + <header name='Content-Length'>...</header> + </headers> + <data> + <text>...</text> + </data> + </req> + </iq> + """ + + name = 'request' + namespace = 'urn:xmpp:http' + interfaces = set(['method', 'resource', 'version']) + plugin_attrib = 'http-req' + + def get_method(self): + return self._get_attr('method', None) + + def set_method(self, method): + self._set_attr('method', method) + + def get_resource(self): + return self._get_attr('resource', None) + + def set_resource(self, resource): + self._set_attr('resource', resource) + + def get_version(self): + return self._get_attr('version', None) + + def set_version(self, version='1.1'): + self._set_attr('version', version) |