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
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']
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']