Kjøring av store SPARQL spørringer med POST (curl) - Utdanningsdirektoratet/Grep_SPARQL GitHub Wiki
– Hvordan unngå feilen “Request header is too large” i GraphDB
Hvis du kjører en stor spørring i nettleseren og bruker Download as-knappen, kan du i sjeldne tilfeller få feilmeldingen:
HTTP Status 400 – Bad Request
Message: Request header is too large
Dette betyr to ting:
- Spørringen din er blitt så stor at den overstiger 2 KB, som er standardgrensen for HTTP-GET i GraphDB.
- Dette er typisk ikke en spørring som bør kjøres ofte i produksjonsmiljøet – det kan sammenlignes med å kjøre bred last over begge felt på E6 med følgebiler: det tar plass og bremser for andre brukere.
⚠️ Merk
Store spørringer kan legge tung belastning på produksjonsmiljøet. Bruk denne metoden kun unntaksvis – for eksempel til å ta ut større datagrunnlag en sjelden gang (f.eks. én gang i året) som du så bearbeider lokalt.
For å omgå GET-begrensningen må du bruke HTTP POST. Det gjør du enklest via kommandolinjen (Ledetekst eller PowerShell i Windows, Terminal på Mac/Linux). Oppskriften nedenfor viser bruk av Ledetekst (CMD) i Windows.
Oppskrift: kjøre en SPARQL-spørring med curl (POST)
-
Forbered spørringsfilen
Lagre spørringsteksten i en fil, f.eks.q1.txt. Notér hvor på maskinen du lagret den, f.eks.C:\Users\brukernavn\. -
Åpne kommandolinjen
Trykk Windows-knappen, skrivcmdog åpne Ledetekst. -
Naviger til riktig mappe
Brukcdtil å gå til mappen der du lagretq1.txt:cd C:\Users\brukernavn -
Kjør curl med POST
Lim inn følgende kommando og trykk Enter:curl.exe -X POST "https://sparql-data.udir.no/repositories/201906" ^ -H "Accept: text/csv" ^ -H "Content-Type: application/sparql-query" ^ --data-binary "@q1.txt" -o resultater.csv-X POSTsørger for at vi bruker POST i stedet for GET.--data-binary "@q1.txt"sender innholdet i filen som spørring.-o resultater.csvlagrer resultatene lokalt.
-
Velg resultatformat
Du kan bytte ut"Accept: text/csv"med andre formater som GraphDB støtter:text/csvtext/tab-separated-values(TSV)application/sparql-results+jsonapplication/sparql-results+xml
-
Se status og ferdig resultat
Underveis ser du en oversikt over sendt og mottatt datamengde. Når prompten (C:\...>) vises igjen, er fila lastet ned til samme mappe som du kjørte kommandoen fra. -
Jobb videre lokalt
Du har nå en resultatfil du kan åpne i ønsket verktøy.- For CSV: husk at Excel noen ganger har utfordringer med UTF-8. Bruk Data → Fra tekst/CSV for å importere filen riktig. Vi har skrevet en snutt om det her.
👉 Med denne metoden unngår du GET-begrensningen, samtidig som du får nedlastet store resultater på en ryddig måte.