Merge pull request #181 from jvelilla/ewf_http_client
Update HTTP Client cURL implementation:
This commit is contained in:
@@ -10,6 +10,9 @@ It provides simple routine to perform http requests, and get response.
|
|||||||
- Eiffel Net library
|
- Eiffel Net library
|
||||||
- and optionally Eiffel NetSSL library to support `https://...`
|
- and optionally Eiffel NetSSL library to support `https://...`
|
||||||
|
|
||||||
|
* Note: set ciphers settings is supported only with libcurl implementation for now, net implementation
|
||||||
|
set all the ciphers as part of the OpenSSL initialization.
|
||||||
|
|
||||||
This means on Windows, do not forget to copy the libcurl.dll (and related) either in the same directory of the executable, or ensure the .dll are in the PATH environment.
|
This means on Windows, do not forget to copy the libcurl.dll (and related) either in the same directory of the executable, or ensure the .dll are in the PATH environment.
|
||||||
|
|
||||||
It is possible to exclude the libcurl implementation xor the Eiffel Net implementation:
|
It is possible to exclude the libcurl implementation xor the Eiffel Net implementation:
|
||||||
|
|||||||
@@ -272,6 +272,15 @@ feature -- Authentication
|
|||||||
-- Associated optional credentials value.
|
-- Associated optional credentials value.
|
||||||
-- Computed as `username':`password'.
|
-- Computed as `username':`password'.
|
||||||
|
|
||||||
|
ciphers_settings: detachable READABLE_STRING_8
|
||||||
|
-- SSL cipher preference lists
|
||||||
|
-- examples: DEFAULT, ALL, TLSv1
|
||||||
|
-- check https://www.openssl.org/docs/man1.1.0/apps/ciphers.html
|
||||||
|
--Warning At the moment only used for LIB_CURL_HTTP_CLIENT
|
||||||
|
--Warning Net implementation set all the ciphers using the OpenSSL at
|
||||||
|
--Warning initialization time.
|
||||||
|
|
||||||
|
|
||||||
feature -- Status setting
|
feature -- Status setting
|
||||||
|
|
||||||
set_is_debug (b: BOOLEAN)
|
set_is_debug (b: BOOLEAN)
|
||||||
@@ -401,6 +410,14 @@ feature -- Element change
|
|||||||
chunk_size := a_size
|
chunk_size := a_size
|
||||||
end
|
end
|
||||||
|
|
||||||
|
set_ciphers_settings (a_ciphers_settings: READABLE_STRING_8)
|
||||||
|
-- Set 'ciphers_settings' with 'a_ciphers_settings'.
|
||||||
|
do
|
||||||
|
create {STRING_8} ciphers_settings.make_from_string (a_ciphers_settings)
|
||||||
|
ensure
|
||||||
|
cipher_settings_set: attached ciphers_settings as c_settings and then c_settings.same_string (a_ciphers_settings)
|
||||||
|
end
|
||||||
|
|
||||||
note
|
note
|
||||||
copyright: "2011-2017, Jocelyn Fiat, Javier Velilla, Eiffel Software and others"
|
copyright: "2011-2017, Jocelyn Fiat, Javier Velilla, Eiffel Software and others"
|
||||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
|||||||
@@ -372,6 +372,11 @@ feature -- Execution
|
|||||||
curl_easy.setopt_integer (curl_handle, {CURL_OPT_CONSTANTS}.curlopt_ssl_verifypeer, 0)
|
curl_easy.setopt_integer (curl_handle, {CURL_OPT_CONSTANTS}.curlopt_ssl_verifypeer, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--| Cipher List
|
||||||
|
if attached session.ciphers_settings as c_list then
|
||||||
|
curl_easy.setopt_string (curl_handle, {CURL_OPT_CONSTANTS}.curlopt_ssl_cipher_list, c_list )
|
||||||
|
end
|
||||||
|
|
||||||
--| Request method
|
--| Request method
|
||||||
if request_method.is_case_insensitive_equal ("GET") then
|
if request_method.is_case_insensitive_equal ("GET") then
|
||||||
curl_easy.setopt_integer (curl_handle, {CURL_OPT_CONSTANTS}.curlopt_httpget, 1)
|
curl_easy.setopt_integer (curl_handle, {CURL_OPT_CONSTANTS}.curlopt_httpget, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user