Updated README

This commit is contained in:
yhirose 2020-05-07 21:13:45 -04:00
parent d043b18097
commit 85637844c9

View File

@ -171,14 +171,14 @@ svr.Post("/content_receiver",
### Send content with Content provider ### Send content with Content provider
```cpp ```cpp
const uint64_t DATA_CHUNK_SIZE = 4; const size_t DATA_CHUNK_SIZE = 4;
svr.Get("/stream", [&](const Request &req, Response &res) { svr.Get("/stream", [&](const Request &req, Response &res) {
auto data = new std::string("abcdefg"); auto data = new std::string("abcdefg");
res.set_content_provider( res.set_content_provider(
data->size(), // Content length data->size(), // Content length
[data](uint64_t offset, uint64_t length, DataSink &sink) { [data](size_t offset, size_t length, DataSink &sink) {
const auto &d = *data; const auto &d = *data;
sink.write(&d[offset], std::min(length, DATA_CHUNK_SIZE)); sink.write(&d[offset], std::min(length, DATA_CHUNK_SIZE));
}, },
@ -191,7 +191,7 @@ svr.Get("/stream", [&](const Request &req, Response &res) {
```cpp ```cpp
svr.Get("/chunked", [&](const Request& req, Response& res) { svr.Get("/chunked", [&](const Request& req, Response& res) {
res.set_chunked_content_provider( res.set_chunked_content_provider(
[](uint64_t offset, DataSink &sink) { [](size_t offset, DataSink &sink) {
sink.write("123", 3); sink.write("123", 3);
sink.write("345", 3); sink.write("345", 3);
sink.write("789", 3); sink.write("789", 3);
@ -290,7 +290,7 @@ auto res = cli.Get("/hi", headers);
std::string body; std::string body;
auto res = cli.Get("/large-data", auto res = cli.Get("/large-data",
[&](const char *data, uint64_t data_length) { [&](const char *data, size_t data_length) {
body.append(data, data_length); body.append(data, data_length);
return true; return true;
}); });
@ -436,6 +436,15 @@ Get(requests, "/get-request2");
Post(requests, "/post-request1", "text", "text/plain"); Post(requests, "/post-request1", "text", "text/plain");
Post(requests, "/post-request2", "text", "text/plain"); Post(requests, "/post-request2", "text", "text/plain");
const size_t DATA_CHUNK_SIZE = 4;
std::string data("abcdefg");
Post(requests, "/post-request-with-content-provider",
data.size(),
[&](size_t offset, size_t length, DataSink &sink){
sink.write(&data[offset], std::min(length, DATA_CHUNK_SIZE));
},
"text/plain");
std::vector<Response> responses; std::vector<Response> responses;
if (cli.send(requests, responses)) { if (cli.send(requests, responses)) {
for (const auto& res: responses) { for (const auto& res: responses) {