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

Reply via email to