curl-library
Re: HTTP/2 with curl_easy
Date: Mon, 4 Mar 2019 22:06:08 +0100 (CET)
On Mon, 4 Mar 2019, Magdy, Marco via curl-library wrote:
> First of all, the AWS SDK uses libcurl's easy interface for HTTP/1.1 while
> this is less than ideal for HTTP/2, I intend on improving that in the
> future. In the meantime, I'm wondering if HTTP/2 works with the easy
> interface.
It does, yes. It just won't multiplex anything since the API is synchronous.
> The issues I'm seeing is that the function set via CURLOPT_READFUNCTION is
> never invoked to send the body when connecting over H2. Instead, I receive a
> 200 OK followed by an error from the server because the client sent
> END_STREAM flag right after it sent the headers.
That sounds like the server objects to something or similar.
You can in fact easily try out HTTP/2 POST with curl against practically any
HTTP/2 server like this:
$ curl -d moo https://[server] --http2
The --http2 option isn't necessary in modern curl versions. I tried this just
now against my own server and even google.com. I couldn't spot any problems.
> $ curl --version
> curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
A quick browsing through the changelog from after that release reveals that we
have fixed numerous bugs in the HTTP/2 side of things since April 2017 when
7.54.0 was released. However, I can't recognize your symptoms to be describing
any previous bug... I would still advice you to test a modern version first
just to make sure and to avoid spending a lot of time on a problem that might
already be fixed.
Can you reproduce the problem against a public end-point so that someone else
can take a look?
-- / daniel.haxx.se ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.htmlReceived on 2019-03-04