Skip to content

Commit 98516f2

Browse files
committed
Use POST for queries to avoid URL getting to long
1 parent 0f5ae6c commit 98516f2

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

backend.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,18 @@
3232

3333

3434
# Run a query against a web-api
35-
def runquery(url, params={}, session=requests):
35+
def runquery(url, params=None, data=None, session=requests):
36+
if params is None:
37+
params = {}
3638
headers = {"User-Agent": user_agent}
37-
r = session.get(url, headers=headers, params=params)
39+
if data is not None:
40+
headers["Content-Type"] = "application/sparql-query"
41+
r = session.post(url, headers=headers, params=params, data=data)
42+
else:
43+
r = session.get(url, headers=headers, params=params)
3844
if r.status_code == 200:
3945
return r.json()["results"]
40-
if r.status_code == 429 or r.status_code == 500:
46+
if r.status_code in [429, 500]:
4147
raise TimeoutError(r.text)
4248
raise ValueError(r.text)
4349

@@ -57,7 +63,7 @@ def runSPARQLquery(query, endpoint=None):
5763
]
5864
elif endpoint == "Qlever":
5965
endpoint_url = "https://qlever.dev/api/wikidata"
60-
return runquery(endpoint_url, params={"query": query})["bindings"]
66+
return runquery(endpoint_url, params={}, data=query)["bindings"]
6167
else:
6268
raise ValueError("Unknown endpoint {}".format(endpoint))
6369

0 commit comments

Comments
 (0)