def sendRequest(strUrl, strRequestMethod="GET", objData=None): bufBodyResult = cStringIO.StringIO() bufHeaderResullt = cStringIO.StringIO() curlRequest = pycurl.Curl() curlRequest.setopt(curlRequest.URL, strUrl) curlRequest.setopt(curlRequest.SSL_VERIFYPEER, False) # curlRequest.setopt(curlRequest.FAILONERROR, True) curlRequest.setopt(curlRequest.USERPWD, "%s:%s" % (ONEPLUS_JIRA_USER, ONEPLUS_JIRA_PWD)) curlRequest.setopt(curlRequest.HTTPHEADER, ['Content-Type: application/json']) curlRequest.setopt(curlRequest.WRITEFUNCTION, bufBodyResult.write) curlRequest.setopt(curlRequest.HEADERFUNCTION, bufHeaderResullt.write) if strRequestMethod != "GET": curlRequest.setopt(curlRequest.CUSTOMREQUEST, strRequestMethod) if objData is not None: if isinstance(objData, str): curlRequest.setopt(curlRequest.POSTFIELDS, objData) elif isinstance(objData, file): curlRequest.setopt(curlRequest.HTTPHEADER, ['X-Atlassian-Token: nocheck']) curlRequest.setopt(curlRequest.HTTPPOST, [ ('file', (pycurl.FORM_BUFFER, CodecUtil.returnUtfStr(os.path.basename(objData.name)), pycurl.FORM_BUFFERPTR, objData.read())), ]) objData.close() try: curlRequest.perform() except Exception, e: logger.exception("Exception Caught") return (None, e)