I'm trying to access SparQL endpoint from Powershell - https://commons-query.wikimedia.org/ , but I'm getting HTML Login page instead of query results even if I provide "wcqsSession" token in my request.
This SO answer provides following snippet:
import sys import requests ENDPOINT = "https://wcqs-beta.wmflabs.org/sparql" QUERY = """ SELECT ?file WHERE { ?file wdt:P180 wd:Q42 . } """ r = requests.get( ENDPOINT, params={"query": QUERY}, headers={"Accept": "application/sparql-results+json", "wcqsSession": "<token retrieved after logging in"} ) print(r.text)
I've replaced <token retrieved after logging in with wcqsSession token I've got from browser (73 chars), but still I'm getting HTML instead of json.
This is a Pwsh alternative:
#$endpoint = 'https://commons-query.wikimedia.org/sparql' $endpoint = 'https://wcqs-beta.wmflabs.org/sparql' #$endpoint = 'https://commons-query.wikimedia.org/' Invoke-RestMethod -Uri $endpoint -Method Get -Headers @{ Accept = "application/sparql-results+json" wcqsSession = $wcqsSession } -Body @{query=$sparql; format='json'}
It returns HTML as well (regardless of which endpoint url was used).
I wonder if I'm doing something wrong or is there another way to query WCQS with SparQL from Powershell?