Hello,

I'm trying to post a SPARQL query to an endpoint using Digest
authentication with the HTTP client.

The query works fine using curl:

curl --digest --user user:pass -X POST -d@'test.rq' \
    -H "Content-type: application/sparql-query" \
    'http://example.org/sparql'

But the equivalent request in BaseX fails with 401 Unauthorized:

let $endpoint := "http://example.org/sparql";
let $user := "user"
let $pass := "pass"
let $type := "application/sparql-query"

let $response := (
  http:send-request(
    <http:request
        method="POST"
        href="{$endpoint}"
        username="{$user}"
        password="{$pass}"
        auth-method="Digest"
        send-authorization="true">
        <http:header
            name="Content-Type"
            value="{$type}; charset=utf-8"/>
        <http:body
            media-type="{$type}">{
            ``[
              select * where {?s ?p ?o} limit 1
            ]``
          }</http:body>
    </http:request>
  )
)
return
  $response

Any ideas about what might be causing the BaseX HTTP client to be denied
here?

Thanks in advance,
Tim


--
Tim A. Thompson
Metadata Librarian
Yale University Library

Reply via email to