Hello,

I have a webserver wich sent Server Sent Events with an encoding gzip.

When I use the curl command line interface with:
curl -v --compressed -i „[URL]" -H "accept: text/event-stream" -H 
"Accept-Encoding: gzip“

I get the header:
< HTTP/2 200 
< content-type: text/event-stream
< cache-control: no-cache
< vary: accept-encoding
< content-encoding: gzip
< strict-transport-security: max-age=15724800; includeSubDomains

and I can see my decoded events in the terminal. Everything is working as 
expected.

When I do it with libcurl via curl-rust I get an error.

The header:
< HTTP/2 200 
< content-type: text/event-stream
< content-encoding: gzip
< vary: accept-encoding
< cache-control: no-cache
< strict-transport-security: max-age=15724800; includeSubDomains

The header is identical to the first.

This is the error i get:
Error { description: "Transferred a partial file", code: 18, extra: 
Some("HTTP/2 stream 1 was reset") }

The code:

    let mut curl = Easy::new();
    let mut list = List::new();
    list.append("accept: text/event-stream").unwrap();


    curl.http_headers(list).unwrap();
    curl.verbose(true).unwrap();


    curl.url(URL).unwrap();
    curl.http_transfer_decoding(true).unwrap();
    curl.http_content_decoding(true).unwrap();
    curl.accept_encoding("gzip").unwrap();

    curl.verbose(true).unwrap();

    curl.write_function(|data|{
        println!("{}", std::str::from_utf8(data).unwrap());
        Ok(data.len())
    }).unwrap();


    curl.perform().unwrap();


If I use http-Version 1.1 I get an error:
Error { description: "Transferred a partial file", code: 18, extra: 
Some("transfer closed with outstanding read data remaining") }

What I am doing wrong? Is there a Bug? Please point me to the right direction.




-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to