Esempio n. 1
0
    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)