Add support for Transfer-Encoding

This commit is contained in:
2025-07-28 16:32:31 +02:00
parent 5d12070a29
commit a63e68f969
9 changed files with 959 additions and 625 deletions
+51
View File
@@ -0,0 +1,51 @@
#include <stddef.h>
#include <chttp.h>
int main(void)
{
http_global_init();
HTTP_Client *client = http_client_init();
if (client == NULL)
return -1;
HTTP_Response *responses[2];
HTTP_String urls[] = {
HTTP_STR("http://coz.is"),
HTTP_STR("http://coz.is"),
};
bool trace = false;
HTTP_RequestBuilder builder;
if (http_client_get_builder(client, &builder) < 0) return -1;
http_request_builder_trace(builder, trace);
http_request_builder_user_data(builder, &responses[0]);
http_request_builder_line(builder, HTTP_METHOD_GET, urls[0]);
http_request_builder_submit(builder);
if (http_client_get_builder(client, &builder) < 0) return -1;
http_request_builder_trace(builder, trace);
http_request_builder_user_data(builder, &responses[1]);
http_request_builder_line(builder, HTTP_METHOD_GET, urls[1]);
http_request_builder_submit(builder);
for (int i = 0; i < 2; i++) {
void **dst;
HTTP_Response *output;
if (http_client_wait(client, &output, (void*) &dst) < 0)
return -1;
*dst = output;
}
HTTP_Response *responseA = responses[0];
HTTP_Response *responseB = responses[1];
// ... process responses ...
http_response_free(responseA);
http_response_free(responseB);
http_client_free(client);
http_global_free();
return 0;
}
+2
View File
@@ -158,6 +158,8 @@ int main(int argc, char **argv)
// TODO
return -1;
}
if (res == NULL)
continue;
HTTP_String body = res->body;