Multiple Accidental POST Requests In Python
I have this program that sends a GET request using requests library and then sends a POST request to another server. import requests # inside the loop : headers = {'charset':'u
Solution 1:
What if you add a timer to the code.
import requests
from datetime import datetime, time
posting = False
# inside the loop :
if not posting:
posting = True
headers = {'charset':'utf-8','Content-Type':'application/json'}
url = "http://someurl/_get_v2.php"
data = jenal
start = datetime.now()
try :
resp = requests.post(url,json=data,headers=headers,timeout=(connect_timeout,read_timeout))
print "Post request sent"
posting = False
except requests.exceptions.ConnectionError as e:
# If you continue here, then there will be no sleep.
# If your POST fails straight away, it tries again straight away.
# You should print/log here so you know which exception is being caught.
# Add Timer
end = datetime.combine(start.date(), time(0))
ShouldISleep(start, end)
posting = False
continue
except requests.exceptions.ReadTimeout as e:
# If you continue here, then there will be no sleep.
# If your POST fails straight away, it tries again straight away.
# You should print/log here so you know which exception is being caught.
# Add Timer
end = datetime.combine(start.date(), time(0))
ShouldISleep(start, end)
posting = False
continue
time.sleep(10)
Create a function
def ShouldISleep(t1, t2):
passed = (t1 - t2).seconds
if passed < 10:
time.sleep(10 - passed)
Post a Comment for "Multiple Accidental POST Requests In Python"