The server is MarkLogic, s maybe they are biased against BaseX ;) I'm not
sure about the configuration, but replacing the User-Agent header with
"curl/7.71.1" didn't help.

Attached is the HTTP info for the curl requests. I also tried it in the
Postman GUI, which worked as well. I noticed that in both curl and Postman
the first request says, "[HTTP request 1/2]," whereas BaseX says, "[HTTP
request 1/1]"

Tim

On Wed, Feb 2, 2022 at 3:38 PM Christian Grün <christian.gr...@gmail.com>
wrote:

> Dommage.
>
> Do you know more about the server you are communicating with? Maybe it
> rejects http (POST?) requests sent by Java?
>
> You could try to supply the curl-specific request headers (such as
> User-Agent, and others) with http:send-request.
>
> Could you additionally forward the full Wireshark logs for curl?
>
> I remember that Adam (Retter) added the http-version option to the new
> version of the HTTP Client Module (it’s not available in 1.0 yet). In the
> given case, I’d assume that http-version=1.1 should be okay, because curl
> uses it as well.
>
>
>
> Tim Thompson <timat...@gmail.com> schrieb am Mi., 2. Feb. 2022, 21:22:
>
>> Thanks for that. Still no luck, I'm afraid. Attached is the full HTTP
>> info for the requests from BaseX (hostname info replaced with "
>> example.org").
>>
>> I should be able to stick with GET requests for now, but would be nice to
>> have access to POST as well.
>>
>> All best,
>> Tim
>>
>>
>> --
>> Tim A. Thompson
>> Metadata Librarian
>> Yale University Library
>>
>>
>> On Wed, Feb 2, 2022 at 2:20 PM Christian Grün <christian.gr...@gmail.com>
>> wrote:
>>
>>> > I notice that curl doesn't include the Authorization header on the
>>> first request, but I am out of my depth here.
>>>
>>> That could be an interesting hint. In the latest snapshot [1], I have
>>> removed the Authorization header from the first request. Can you check
>>> if it makes a difference?
>>>
>>> If not, could you share the headers of the second requests with us?
>>>
>>> [1] https://files.basex.org/releases/latest/
>>>
>>
Hypertext Transfer Protocol
    POST /v1/graphs/sparql HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): POST /v1/graphs/sparql HTTP/1.1\r\n]
        Request Method: POST
        Request URI: /v1/graphs/sparql
        Request Version: HTTP/1.1
    Host: example.org\r\n
    User-Agent: curl/7.71.1\r\n
    Accept: */*\r\n
    Content-type: application/sparql-query\r\n
    Content-Length: 0\r\n
    \r\n
    [Full request URI: http://example.org/v1/graphs/sparql]
    [HTTP request 1/2]
    [Response in frame: 76]
    [Next request in frame: 78]


Hypertext Transfer Protocol
    HTTP/1.1 401 Unauthorized\r\n
        [Expert Info (Chat/Sequence): HTTP/1.1 401 Unauthorized\r\n]
        Response Version: HTTP/1.1
        Status Code: 401
        [Status Code Description: Unauthorized]
        Response Phrase: Unauthorized
    Date: Wed, 02 Feb 2022 21:11:25 GMT\r\n
    Content-Type: application/json; charset=utf-8\r\n
    Content-Length: 104\r\n
    Connection: keep-alive\r\n
    Set-Cookie: 
AWSALB=E+C5iXeqdhPvATdqaa35WllN1c+XOg5C1L0cN04X+K5zzUU9ZYRyociQWkZFyVGksz3M08Y017BV8pFD/llPWEM6FeTqiMoE7q8UJ0E3Fxpk9Rpz5zN6hxl+D/Lp;
 Expires=Wed, 09 Feb 2022 21:11:25 GMT; Path=/\r\n
    Set-Cookie: 
AWSALBCORS=E+C5iXeqdhPvATdqaa35WllN1c+XOg5C1L0cN04X+K5zzUU9ZYRyociQWkZFyVGksz3M08Y017BV8pFD/llPWEM6FeTqiMoE7q8UJ0E3Fxpk9Rpz5zN6hxl+D/Lp;
 Expires=Wed, 09 Feb 2022 21:11:25 GMT; Path=/; SameSite=None\r\n
    Server: MarkLogic\r\n
    WWW-Authenticate: Digest realm="public", qop="auth", 
nonce="3a669a9acad6d8:8nwokPa+YActQ7KDb3R5gg==", opaque="e225558330e43e07"\r\n
    \r\n
    [HTTP response 1/2]
    [Time since request: 0.032887000 seconds]
    [Request in frame: 72]
    [Next request in frame: 78]
    [Next response in frame: 170]
    [Request URI: http://example.org/v1/graphs/sparql]
    File Data: 104 bytes
JavaScript Object Notation: application/json


Hypertext Transfer Protocol
    POST /v1/graphs/sparql HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): POST /v1/graphs/sparql HTTP/1.1\r\n]
        Request Method: POST
        Request URI: /v1/graphs/sparql
        Request Version: HTTP/1.1
    Host: example.org\r\n
     [truncated]Authorization: Digest username="[...]", realm="public", 
nonce="[...]", uri="/v1/graphs/sparql", cnonce="[...]", nc=00000001, qop=auth, 
response="[...]"
    User-Agent: curl/7.71.1\r\n
    Accept: */*\r\n
    Content-type: application/sparql-query\r\n
    Content-Length: 35\r\n
    \r\n
    [Full request URI: http://example.org/v1/graphs/sparql]
    [HTTP request 2/2]
    [Prev request in frame: 72]
    [Response in frame: 170]
    File Data: 35 bytes
Media Type
    Media type: application/sparql-query (35 bytes)


Hypertext Transfer Protocol
    HTTP/1.1 200 OK\r\n
        [Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n]
        Response Version: HTTP/1.1
        Status Code: 200
        [Status Code Description: OK]
        Response Phrase: OK
    Date: Wed, 02 Feb 2022 21:11:28 GMT\r\n
    Content-Type: application/sparql-results+json; charset=UTF-8\r\n
    Content-Length: 247\r\n
    Connection: keep-alive\r\n
    Set-Cookie: 
AWSALB=Ai0D8OHThYcPE4WvRGaJjBWA9flGCU01Y/ewyec5ntDu0q7xzZAYJmwjQPF7eMjA4/QCjkZij8IpUZQBrBY3XPpqxHFSfhTnjQunEjqPxrLJvsxa3dpqWbDdmkR3;
 Expires=Wed, 09 Feb 2022 21:11:25 GMT; Path=/\r\n
    Set-Cookie: 
AWSALBCORS=Ai0D8OHThYcPE4WvRGaJjBWA9flGCU01Y/ewyec5ntDu0q7xzZAYJmwjQPF7eMjA4/QCjkZij8IpUZQBrBY3XPpqxHFSfhTnjQunEjqPxrLJvsxa3dpqWbDdmkR3;
 Expires=Wed, 09 Feb 2022 21:11:25 GMT; Path=/; SameSite=None\r\n
    ML-Effective-Timestamp: 16438362609754000\r\n
    Server: MarkLogic\r\n
    \r\n
    [HTTP response 2/2]
    [Time since request: 3.011839000 seconds]
    [Prev request in frame: 72]
    [Prev response in frame: 76]
    [Request in frame: 78]
    [Request URI: http://example.org/v1/graphs/sparql]
    File Data: 247 bytes
Media Type
    Media type: application/sparql-results+json; charset=UTF-8 (247 bytes)

Reply via email to