restless icon indicating copy to clipboard operation
restless copied to clipboard

Does restless work?

Open CheyenneForbes opened this issue 6 years ago • 4 comments

Trying to do a chunked upload but it doesnt work

std::shared_ptr<restless::Session> session;

void MakeConn( ){
    session = std::make_shared<restless::Session>();
    session->open( "127.0.0.1", 80, [ this ]( auto session, auto status ){
        auto request = std::make_shared< restless::Request >( );
        request->set_protocol( "HTTP" );
        request->set_version( 1.1 );
        request->set_path( "/uploads" );
        request->set_method( "PUT" );
        request->set_header( "Transfer-Encoding", "chunked" );
        session->send( request, []( auto session, auto response, auto status ){
                std::cout << status << std::endl;
                return std::error_code();
            }
        );
        return std::error_code();
    });
}

void SendData(char* data, long length){
    std::string chunk = std::to_string(length);
    chunk += "\r\n";
    if(length){
        chunk += data;
    }
    chunk += "\r\n";
    session->yield( 
        chunk,
        []( auto session, auto status ){
            std::cout << status << std::endl;
            return std::error_code();
        }
    );
  }

CheyenneForbes avatar Jun 06 '18 22:06 CheyenneForbes

What appears to be the issue?

ben-crowhurst avatar Jun 10 '18 11:06 ben-crowhurst

I'm getting system:111 from std::cout << status << std::endl;

CheyenneForbes avatar Jun 10 '18 16:06 CheyenneForbes

its now 0 as it should be but the code still doesnt work, servers that support Transfer-Encoding: chunked return 400 error... uploads with Content-Length header work tho

CheyenneForbes avatar Jun 12 '18 23:06 CheyenneForbes

this doesnt work either, i get 400 error code

void testChunkedTrans( ){
    auto session = std::make_shared<restless::Session>();
    session->open( "127.0.0.1", 80, [ this ]( auto session, auto status ){
        auto request = std::make_shared< restless::Request >( );
        request->set_protocol( "HTTP" );
        request->set_version( 1.1 );
        request->set_path( "/uploads" );
        request->set_method( "PUT" );
        request->set_header( "Transfer-Encoding", "chunked" );
        request->set_body("10\r\nqwertychey\r\n0\r\n\r\n");
        session->send( request, []( auto session, auto response, auto status ){
                std::cout << response->get_status_code() << std::endl;
                return std::error_code();
            }
        );
        return std::error_code();
    });
}

CheyenneForbes avatar Jun 13 '18 07:06 CheyenneForbes