Skip to content

Instantly share code, notes, and snippets.

@aictrl
Created January 30, 2021 19:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save aictrl/71a3aa25034baff68e46454e0607280c to your computer and use it in GitHub Desktop.
Save aictrl/71a3aa25034baff68e46454e0607280c to your computer and use it in GitHub Desktop.
HTTP Request function with retry for IronPython
from System.Net import WebRequest
from System.Text import ASCIIEncoding
from System.IO import StreamReader
from System.Net import ServicePointManager
from System.Net import SecurityProtocolType
from System.Net import WebException
import time
def http(method, url, data_string=None, header={}, retry=3):
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12
request = WebRequest.Create(url)
request.UseDefaultCredentials = True
request.Method = method
request.ContentLength = 0
request.Headers.Add('Access-Control-Allow-Origin', '*')
for k,v in header.items():
request.Headers.Add(k,v)
if data_string:
request.ContentType = "application/json"
encoding = ASCIIEncoding()
data = encoding.GetBytes(data_string)
request.ContentLength = data.Length
stream = request.GetRequestStream()
stream.Write(data, 0, data.Length)
stream.Close()
try:
response = request.GetResponse()
print (response.StatusDescription)
dataStream = response.GetResponseStream()
reader = StreamReader(dataStream)
responseFromServer = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
return responseFromServer
except WebException as e :
if e.Response.StatusDescription == "Not Found" and retry>0:
time.sleep(10)
return http(method, url, data_string, header, retry-1)
print (e.Response.StatusDescription)
dataStream = e.Response.GetResponseStream()
reader = StreamReader(dataStream)
responseFromServer = reader.ReadToEnd()
print (responseFromServer)
reader.Close()
dataStream.Close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment