aboutsummaryrefslogtreecommitdiffstats
path: root/lib/inets/src/http_client/httpc.erl
AgeCommit message (Collapse)Author
2018-06-18Update copyright yearHenrik Nord
2018-03-06Merge branch 'maint'Péter Dimitrov
* maint: inets: Prepare for release inets: Skip http_unix_socket test group on Windows inets: Add unix domain socket support to httpc Change-Id: I4c3a3d6e4fbbdf82e4e2e7d30b84510f9c286c68
2018-02-26inets: Add unix domain socket support to httpcPéter Dimitrov
Change-Id: I44fe2670e36884e09600d17dd71b1e86b9ee75fa
2017-11-28inets: Fix httpc path handlingPéter Dimitrov
Fixed handling of URL paths that contain space (%20) characters. Change-Id: Ic09691e35c70ee005af7637a6ec3ae588097bec1
2017-11-15inets: Fix http content injection bug in httpcPéter Dimitrov
- uri_string module used for parsing URIs. - Removed url_encode option as only valid URIs shall be handled by the http client. - The client rejects URIs that are not compliant with RFC 3986. Change-Id: I0a5b9766f6463a9802e0b02b445a2c4c91f02236
2017-05-04Update copyright yearRaimo Niskanen
2017-03-17Omit port from Host header on redirect to well-known portBram Verburg
ERL-316, as part of 19.3, adds the port number to the Host header upon automatic redirection. The port number is included even if it is a well-known port (80, 443). This is different from the behaviour of most HTTP clients, as well as httpc's own for new requests. The added port number can lead to problems such as this one, where the request signature assumes the client will not send the :443 suffix on redirection to an https URL: https://github.com/nerves-project/nerves/issues/96 I was unable to add a test case, since that would require a server on a well-known port, but I manually verified that the GitHub/S3 signing issue was indeed resolved with this patch.
2016-12-21inets: httpc - Prevent hanging user processIngela Anderton Andin
Input should be checked and httpc_handler process shall terminate gracefully on errors so that user process will in hang in gen_server:call.
2016-12-21inets: httpc - clean codeIngela Anderton Andin
Remove dead code and redundant debug macros. Better to use tracing for debugging.
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-03-16inets: Mend ipv6_host_with_brackets optionIngela Anderton Andin
This is a quick fix to make this option work. We will revisit this and clean up httpc option handling later. Also adding regression tests.
2016-03-15update copyright-yearHenrik Nord
2015-12-08inets: Add PATCH method to client and serverPablo Lamela
2015-06-18Change license text to APLv2Bruce Yinhe
2013-09-24inets: httpc - Remove dead error handling codeIngela Anderton Andin
Some error handling is only relevant for functions that end up in gen_server:call and not in gen_server:cast.
2013-09-13inets: httpc make httpc_cancel_request/[1,2] asynchronousIngela Anderton Andin
2013-07-01Merge branch 'jwh/httpc_delete_body/OTP-11190' into maintFredrik Gustafsson
* jwh/httpc_delete_body/OTP-11190: httpc: Allow content body in DELETE requests
2013-06-14httpc: Allow content body in DELETE requestsJames Wheare
2013-06-12Update copyright yearsBjörn-Egil Dahlberg
2013-03-12Added guard for invalid field and values in headersFredrik Gustafsson
2012-10-02inets httpc: TLS via proxyIngela Anderton Andin
Introduces new option htts_proxy so that it is possible to have different proxies for http and https. The new option defaults to the old proxy option. Implements HTTP-1.1 extension method CONNECT to establish SSL/TLS tunnel We choose not to implement "TLS upgrade" as defined by RFC 2817 as this method of upgrade is vulnerable to man in the middle attacks, can be easily broken by proxies and does not seem to be widely adopted.
2012-05-22[inets/httpc] Better handling of session db update failureMicael Karlberg
A failure to update the session database will now result in an informative error message and a controlled (handler) exit rather then an ugly crash. Also debug functions to retrieve sessions info and updated the info function with more info (sessions and options). OTP-10093
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-03-15[inets] The module http_uri now officially supportedMicael Karlberg
The module http_uri now officially supported. Also, the http_uri:parse/1,2 function has been extended with more scheme support and a way to provide your own scheme info. OTP-9983
2012-03-14[inets] A more general version of http_uri:parseMicael Karlberg
OTP-9983
2012-03-13[inets/httpc] Add function to retreive current optionsMicael Karlberg
Add function to retreive current options, httpc:get_options/1,2. OTP-9979
2011-11-23Fixed acceptor exit warnings (detected by dialyzer).Micael Karlberg
Also fixed cookie_header/3 and updated documented accordingly. Also added documentation for undocumented URI parse option.
2011-10-18[httpc] Wrong Host header in IPv6 HTTP requests.Micael Karlberg
When a URI with a IPv6 host is parsed, the brackets that encapsulates the nnn is removed. This value is then supplied as the host header. This can cause problems with some servers. A workaround for this is to use headers_as_is and provide the host header with the requst call To solve this a new option has been added, ipv6_host_with_brackets. This option specifies if the host value of the host header shall include the branckets or not. By default, it does not (as before). OTP-9628
2011-10-12Make return from the parse function conform with:Micael Karlberg
{error, Reason} | {ok, ParsedURL}
2011-09-05Removed the ossl config option (from both client and server).Micael Karlberg
The ossl option is no longer valid since the old ssl (OpenSSL based ssl variant) has been removed from the ssl app. OTP-9522
2011-06-15[httpc|httpd] Added support for IPv6 with ssl.Micael Karlberg
OTP-5566 Merge branch 'bmk/inets/handle_ipv6_with_ssl2/OTP-5566' into bmk/inets/inets57_integration2 Conflicts: lib/inets/doc/src/notes.xml lib/inets/src/inets_app/inets.appup.src lib/inets/test/inets_test_lib.erl
2011-06-15Stopping httpc client...Micael Karlberg
2011-06-15Clients started stand-alone not properly handled.Micael Karlberg
OTP-9365
2011-06-15Temporary solution for profile_name stuff. What about Pids???Micael Karlberg
2011-06-15[httpc] Remove unnecessary usage of iolist_to_binary whenMicael Karlberg
processing body (for PUT and POST). Filipe David Manana OTP-9317
2011-05-20Update copyright yearsBjörn-Egil Dahlberg
2011-03-18Fixed debug macro.Micael Karlberg
Fixed appup file (not updated). Fixed application version.
2011-03-07Adding missing "send loop" for raw sending.Micael Karlberg
Also fixed some of the documentation (types).
2011-03-04Merge branch 'fm/httpc-upload-body-streaming' into ↵Micael Karlberg
bmk/inets/httpc/support_upload_body_streaming/OTP-OTP-9094 Conflicts: lib/inets/src/http_client/httpc.erl lib/inets/test/httpc_SUITE.erl
2011-03-02inets/httpc: Polish documentationChristian von Roques
* Assure store_cookies (and verify_cookies) is documented instead of the nonexistent store_cookie and verify_cookie. * Make sure the cookies option is not called cookie in comments. * Sprinkle <c>...</c> arround symbols and code snippets in text. * Grammar, wording, and punctuation fixes. * Formalize See gen_tcp:connect/3,4 using <seealso>.
2010-11-29URL-encoding - add support in client and more usage in server. AlsoIngela Anderton Andin
added missing include directory.
2010-10-13httpc: add option to do automatic chunked transfer-encodingFilipe David Manana
This is specially useful when a client doesn't know in advance the length of the payload (so that it can't set the Content-Length header). Example: -module(httpc_post_stream_test). -compile(export_all). prepare_data() -> crypto:start(), {ok, Fd} = file:open("test_data.dat", [binary, write]), ok = file:write(Fd, lists:duplicate(crypto:rand_uniform(8182, 32768), "1")), ok = file:close(Fd). test() -> inets:start(), ok = prepare_data(), {ok, Fd1} = file:open("test_data.dat", [binary, read]), BodyFun = fun(Fd) -> case file:read(Fd, 512) of eof -> eof; {ok, Data} -> {ok, Data, Fd} end end, %% header 'Transfer-Encoding: chunked' is added by httpc {ok, {{_,200,_}, _, _}} = httpc:request(post, {"http://localhost:8888", [], "text/plain", {chunkify, BodyFun, Fd1}}, [], []), ok = file:close(Fd1).
2010-10-05httpc: allow streaming of PUT and POST request bodiesFilipe David Manana
This is a must when uploading large bodies that are to large to store in a string or binary. Besides a string or binary, a body can now be a function and an accumulator. Example: -module(httpc_post_stream_test). -compile(export_all). -define(LEN, 1024 * 1024). prepare_data() -> {ok, Fd} = file:open("test_data.dat", [binary, write]), ok = file:write(Fd, lists:duplicate(?LEN, "1")), ok = file:close(Fd). test() -> inets:start(), ok = prepare_data(), {ok, Fd1} = file:open("test_data.dat", [binary, read]), BodyFun = fun(Fd) -> case file:read(Fd, 512) of eof -> eof; {ok, Data} -> {ok, Data, Fd} end end, {ok, {{_,200,_}, _, _}} = httpc:request(post, {"http://localhost:8888", [{"content-length", integer_to_list(?LEN)}], "text/plain", {BodyFun, Fd1}}, [], []), ok = file:close(Fd1).
2010-06-07OTP-7907: Allow the use of the "new" ssl (essl).Micael Karlberg
OTP-8564: Update deeprication status. OTP-8573: Inets mod_alias URL rewrite.
2010-04-28OTP-8542: HTTP client memory leakMicael Karlberg
OTP-8607: https default port not handled
2010-01-19OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327,Micael Karlberg
OTP-8349, OTP-8351, OTP-8352, OTP-8359 & OTP-8371.
2010-01-13OTP-8016, OTP-8056, OTP-8103, OTP-8106, OTP-8312, OTP-8315, OTP-8327, OTP-8349,Micael Karlberg
OTP-8351, OTP-8359 & OTP-8371.