예제 #1
0
 def _get_response(self, **kwargs):
     url = self.read_url + "?output=JSON&token=%s" % self.read_token
     for key in kwargs:
         if key and kwargs[key]:
             val = kwargs[key]
             if isinstance(val, (list, tuple)):
                 val = ",".join(val)
             url += "&%s=%s" % (key, val)
     req = urllib2.urlopen(url)
     data = simplejson.loads(req.read())
     if data and data.get('error', None):
         BrightcoveError.raise_exception(data['error'])
     if data == None:
         raise NoDataFoundError("No data found for %s" % repr(kwargs))
     return data
예제 #2
0
    def _post(self, data, file_to_upload=None):
        params = {"JSONRPC": simplejson.dumps(data)}
        req = None
        if file_to_upload:
            cookies = cookielib.CookieJar()
            cproc = urllib2.HTTPCookieProcessor(cookies)
            opener = urllib2.build_opener(cproc, MultipartPostHandler)
            params["filePath"] = open(file_to_upload, "rb")
            req = opener.open(self.write_url, params)
        else:
            msg = urllib.urlencode({'json': params['JSONRPC']})
            req = urllib2.urlopen(self.write_url, msg)

        if req:
            result = simplejson.loads(req.read())
            if 'error' in result and result['error']:
                BrightcoveError.raise_exception(result['error'])
            return result['result']
예제 #3
0
    def _post(self, data, file_to_upload=None):
        params = {"JSONRPC": simplejson.dumps(data)}
        req = None
        if file_to_upload:
            req = HttpRequest(self.write_url)
            req.method = 'POST'
            req.add_body_part("JSONRPC", simplejson.dumps(data), 'text/plain')
            req.add_body_part("filePath", file(file_to_upload, "rb"),
                'application/octet-stream')
            req.end_of_parts()
            req.headers['Content-Type'] = 'multipart/form-data; boundary=%s' \
                % MIME_BOUNDARY
            req.headers['User-Agent'] = UserAgent

            req = ProxiedHttpClient().request(req)
        else:
            msg = urllib.urlencode({'json': params['JSONRPC']})
            req = urllib2.urlopen(self.write_url, msg)

        if req:
            result = simplejson.loads(req.read())
            if 'error' in result and result['error']:
                BrightcoveError.raise_exception(result['error'])
            return result['result']