From 69b5ce637e17bf5fd94967d0a2c336b64cf1833d Mon Sep 17 00:00:00 2001 From: Jocelyn Fiat Date: Wed, 17 May 2017 12:16:35 +0200 Subject: [PATCH] Improved query and form data encoding (based on a very early version of the general URI percent-encoding rules). - now correct encoding of space by '%20' in path segment, and '+' in query parameters. Unify and fixed query parameters handling for libcurl and net implementation. Fixed file uploading (various issue in libcurl, and net implementation). Fixed form multipart encoding by using correctly the boundary. Updated autotest cases. Code cleaning. --- .../network/http_client/http_client-safe.ecf | 1 + library/network/http_client/http_client.ecf | 1 + .../http_client/src/http_client_request.e | 67 +- .../src/http_client_request_context.e | 104 ++- .../http_client/src/http_client_session.e | 22 +- .../src/implementation/uri_percent_encoder.e | 628 ++++++++++++++++++ .../libcurl/libcurl_http_client_request.e | 15 +- .../libcurl/libcurl_http_client_session.e | 6 +- .../src/spec/net/net_http_client_request.e | 16 +- .../src/spec/net/net_http_client_session.e | 6 +- .../src/spec/null/null_http_client_session.e | 4 +- .../http_client/tests/test_libcurl_with_web.e | 5 + .../http_client/tests/test_net_with_web.e | 10 + .../http_client/tests/test_with_web_i.e | 122 +++- .../text/encoder/src/x_www_form_url_encoder.e | 47 ++ 15 files changed, 932 insertions(+), 122 deletions(-) create mode 100644 library/network/http_client/src/implementation/uri_percent_encoder.e create mode 100644 library/text/encoder/src/x_www_form_url_encoder.e diff --git a/library/network/http_client/http_client-safe.ecf b/library/network/http_client/http_client-safe.ecf index 7f249cee..652bd060 100644 --- a/library/network/http_client/http_client-safe.ecf +++ b/library/network/http_client/http_client-safe.ecf @@ -33,6 +33,7 @@ + +