summaryrefslogtreecommitdiff
path: root/banapedia/api/Query.py
blob: 7453df9b212c3b7fda6451d58b6f513cfe471051 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import urllib.parse
import urllib.request
import json

__author__ = 'pacien'


class Query:
    def __init__(self, base_url="", params={}, encoding="utf8"):
        self.base_url = base_url
        self.params = params
        self.encoding = encoding

    def fetch_raw_result(self):
        post_query = urllib.parse.urlencode(self.params)
        post_query = post_query.encode(self.encoding)
        document = urllib.request.urlopen(self.base_url, post_query)
        return document.read().decode(self.encoding)


class JSONQuery(Query):
    def fetch_result(self):
        return json.loads(self.fetch_raw_result())