Example #1
0
def callservice(url__, **kargs):
    kw = {}
    if kargs:
        # urlencode does not accept non-ascii data
        for k, v in kargs.iteritems():
            if isinstance(v, unicode):
                kargs[k] = v.encode('utf-8')
        kw['data'] = urlencode(kargs)
    if not _testing:
        req = Request(url__, **kw)
        u = urlopen(req)
        return u.read()
    else:
        kargs = '&'.join(['='.join((k, str(v)))
            for k, v in kargs.iteritems()])
        if kargs:
            url__ = '%s?%s' % (url__, kargs)
        from idileslib.turbogears.testing import Browser
        browser = Browser()
        browser.goto(url__)
        return browser.body
Example #2
0
                u = urlopen(url, data=params)
            elif method == 'get':
                if params:
                    url = '%s?%s' % (url, params)
                u = urlopen(url)
            else:
                raise ValueError('Unknown method: %s' % method)
        except HTTPError, e:
            raise ValueError(e.read())
        resp = u.read()
        return resp
    else:
        if params:
            url = '%s?%s' % (url, params)
        from idileslib.turbogears.testing import Browser
        browser = Browser()
        browser.goto(url)
        return browser.body

def _unjsonify(text):
    import jsonlib
    return jsonlib.read(text)

class Service(object):
    def __init__(self, url, method='post', auth=None, *args, **kargs):
        """Constructs a proxy object for a remote service.

    url - A URL of the service
    method - HTTP method: get or post. Default post
    auth - dict(realm=<realm>, user=<username>, passwd=<password>). Default None
        """