1 #!/usr/bin/python 2 3 import urllib2 4 import time 5 import logging 6 import threading 7 8 succCount = 0 9 failCount = 0 10 IP = '127.0.0.1' 11 port = '9997' 12 postUrl = "http://%s:%s/" % (IP, port) 13 HTTP_POST_HEADERS = {'Content-Type': 'text/xml'} 14 15 content = ' ' 16 17 logging.basicConfig(level=logging.INFO, 18 format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', 19 filename='myapp.log', 20 filemode='w') 21 22 def doPost1(postUrl,postHeaders,postData = None): 23 global succCount,failCount 24 postReq = urllib2.Request(url=postUrl, headers=postHeaders, data=postData) 25 try: 26 response = urllib2.urlopen(postReq, timeout=3) 27 except urllib2.HTTPError,e: 28 failCount += 1 29 logging.debug("catch HTTPError") 30 logging.error("The server couldn\'t fulfill the request") 31 logging.error("Error code: %d",e.code) 32 logging.error("Error reason: %s",e.reason) 33 except urllib2.URLError,e: 34 failCount += 1 35 logging.debug("catch URLError") 36 logging.error("We failed to reach a server") 37 logging.error("Reason: %s", e.reason) 38 else: 39 succCount += 1 40 logging.debug("success to recv response") 41 logging.info("response content =%s", response.read()) 42 logging.info("response code =%s", response.getcode()) 43 logging.info("contentType =%s" , response.info().getheader("Content-Type")) 44 logging.info("response url =%s", response.geturl()) 45 logging.info("response info =\n%s", response.info()) 46 47 def doPost2(postUrl,postHeaders,postData): 48 for j in range(0, 1): 49 doPost1(postUrl,postHeaders,postData) 50 time.sleep(0.001) 51 52 if __name__ == "__main__": 53 54 logging.info('begin test') 55 56 threadinggroup = [] 57 for i in range(0, 1): 58 tt = threading.Thread(target = doPost2,args = (postUrl, HTTP_POST_HEADERS,content)) 59 tt.start() 60 threadinggroup.append(tt) 61 62 for tt in threadinggroup: 63 tt.join() 64 65 logging.info('succCount = %d ,failCount = %d',succCount,failCount)