def runCurl(requestObj):
global rcId, url, method, requestHeaders, requestBodyStr
rcId, url, method, requestHeaders, requestBodyStr = requestObj
requestBody = BytesIO(requestBodyStr)
responseHeaders = BytesIO()
responseBody = BytesIO()
responseCode, responseHeaderStr, responseBodyStr = None, None, None
cType = method if optCurlMethods.get(method, None) != None else 'OTHERS'
c = setOptCurl(setOptCurl(pycurl.Curl(), optCurlMethods['COMMON']), optCurlMethods[cType])
c.setopt(c.URL, url)
c.setopt(c.HTTPHEADER, requestHeaders)
c.setopt(c.READFUNCTION, requestBody.read)
c.setopt(c.HEADERFUNCTION, responseHeaders.write)
c.setopt(c.WRITEFUNCTION, responseBody.write)
try:
startTime = datetime.now()
c.perform()
endTime = datetime.now()
except Exception as e:
responseCode, responseHeaderStr, responseBodyStr, startTime, endTime, error = None, None, None, None, None, e
else:
responseCode, responseHeaderStr, responseBodyStr, error = c.getinfo(pycurl.RESPONSE_CODE), responseHeaders.getvalue(), responseBody.getvalue(), None
finally:
c.close()
requestBody.close()
responseHeaders.close()
responseBody.close()
return responseCode, responseHeaderStr, responseBodyStr, startTime, endTime, error
评论列表
文章目录