Add client.py
هذا الالتزام موجود في:
36
client.py
Normal file
36
client.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# بسم الله الرحمن الرحيم
|
||||||
|
|
||||||
|
from http.client import HTTPSConnection
|
||||||
|
from base64 import b64encode
|
||||||
|
from json import loads
|
||||||
|
from json import dumps
|
||||||
|
|
||||||
|
class RestClient:
|
||||||
|
domain = "api.dataforseo.com"
|
||||||
|
|
||||||
|
def __init__(self, username, password):
|
||||||
|
self.username = username
|
||||||
|
self.password = password
|
||||||
|
|
||||||
|
def request(self, path, method, data=None):
|
||||||
|
connection = HTTPSConnection(self.domain)
|
||||||
|
try:
|
||||||
|
base64_bytes = b64encode(
|
||||||
|
("%s:%s" % (self.username, self.password)).encode("ascii")
|
||||||
|
).decode("ascii")
|
||||||
|
headers = {'Authorization' : 'Basic %s' % base64_bytes, 'Content-Encoding' : 'gzip'}
|
||||||
|
connection.request(method, path, headers=headers, body=data)
|
||||||
|
response = connection.getresponse()
|
||||||
|
return loads(response.read().decode())
|
||||||
|
finally:
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
def get(self, path):
|
||||||
|
return self.request(path, 'GET')
|
||||||
|
|
||||||
|
def post(self, path, data):
|
||||||
|
if isinstance(data, str):
|
||||||
|
data_str = data
|
||||||
|
else:
|
||||||
|
data_str = dumps(data)
|
||||||
|
return self.request(path, 'POST', data_str)
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم