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.html