Files
Arjun/arjun/core/requester.py

77 lines
2.5 KiB
Python
Raw Normal View History

2019-04-12 18:09:35 +05:30
import json
2018-11-09 20:32:08 +05:30
import time
import random
import requests
import warnings
2021-02-07 19:43:30 +05:30
import arjun.core.config as mem
from arjun.core.utils import dict_to_xml
2018-11-09 20:32:08 +05:30
warnings.filterwarnings('ignore') # Disable SSL related warnings
def requester(request, payload={}):
2021-02-07 19:43:30 +05:30
"""
central function for making http requests
returns str on error otherwise response object of requests library
"""
2022-09-11 02:57:13 +05:30
if len(request.get('include', '')) != 0:
payload.update(request['include'])
if mem.var['stable']:
2022-09-11 14:38:42 +05:30
mem.var['delay'] = random.choice(range(3, 10))
time.sleep(mem.var['delay'])
url = request['url']
if mem.var['kill']:
return 'killed'
try:
if request['method'] == 'GET':
2022-04-04 14:47:27 +05:30
response = requests.get(url,
params=payload,
headers=request['headers'],
verify=False,
allow_redirects=False,
timeout=mem.var['timeout'],
)
elif request['method'] == 'JSON':
2021-02-08 09:51:36 +05:30
request['headers']['Content-Type'] = 'application/json'
2021-02-07 19:43:30 +05:30
if mem.var['include'] and '$arjun$' in mem.var['include']:
2022-04-04 14:47:27 +05:30
payload = mem.var['include'].replace('$arjun$',
json.dumps(payload).rstrip('}').lstrip('{'))
response = requests.post(url,
data=payload,
headers=request['headers'],
verify=False,
allow_redirects=False,
timeout=mem.var['timeout'],
)
2021-02-07 19:43:30 +05:30
else:
2022-04-04 14:47:27 +05:30
response = requests.post(url,
json=payload,
headers=request['headers'],
verify=False,
allow_redirects=False,
timeout=mem.var['timeout'],
)
2021-02-07 19:43:30 +05:30
elif request['method'] == 'XML':
2021-02-08 09:51:36 +05:30
request['headers']['Content-Type'] = 'application/xml'
2022-04-04 14:47:27 +05:30
payload = mem.var['include'].replace('$arjun$',
dict_to_xml(payload))
response = requests.post(url,
data=payload,
headers=request['headers'],
verify=False,
allow_redirects=False,
timeout=mem.var['timeout'],
)
else:
2022-04-04 14:47:27 +05:30
response = requests.post(url,
data=payload,
headers=request['headers'],
verify=False,
allow_redirects=False,
timeout=mem.var['timeout'],
)
return response
except Exception as e:
return str(e)