Added error reporting in HTTP_CLIENT_RESPONSE
Added missing set_connect_timeout
This commit is contained in:
1
library/client/http_client/README.md
Normal file
1
library/client/http_client/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Simple HTTP client implemented using Eiffel cURL library
|
||||||
@@ -21,6 +21,17 @@ feature {NONE} -- Initialization
|
|||||||
|
|
||||||
feature -- Status
|
feature -- Status
|
||||||
|
|
||||||
|
error_occurred: BOOLEAN
|
||||||
|
-- Error occurred during request
|
||||||
|
|
||||||
|
feature {HTTP_CLIENT_REQUEST} -- Status setting
|
||||||
|
|
||||||
|
set_error_occurred (b: BOOLEAN)
|
||||||
|
-- Set `error_occurred' to `b'
|
||||||
|
do
|
||||||
|
error_occurred := b
|
||||||
|
end
|
||||||
|
|
||||||
feature -- Access
|
feature -- Access
|
||||||
|
|
||||||
status: INTEGER assign set_status
|
status: INTEGER assign set_status
|
||||||
|
|||||||
@@ -108,6 +108,11 @@ feature -- Change
|
|||||||
timeout := n
|
timeout := n
|
||||||
end
|
end
|
||||||
|
|
||||||
|
set_connect_timeout (n: like connect_timeout)
|
||||||
|
do
|
||||||
|
connect_timeout := n
|
||||||
|
end
|
||||||
|
|
||||||
set_user_agent (v: READABLE_STRING_8)
|
set_user_agent (v: READABLE_STRING_8)
|
||||||
do
|
do
|
||||||
add_header ("User-Agent", v)
|
add_header ("User-Agent", v)
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ inherit
|
|||||||
session
|
session
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
create
|
create
|
||||||
make
|
make
|
||||||
|
|
||||||
@@ -174,19 +173,20 @@ feature -- Execution
|
|||||||
create Result.make
|
create Result.make
|
||||||
l_result := curl_easy.perform (curl_handle)
|
l_result := curl_easy.perform (curl_handle)
|
||||||
|
|
||||||
create a_data.put (Void)
|
if l_result = {CURL_CODES}.curle_ok then
|
||||||
l_result := curl_easy.getinfo (curl_handle, {CURL_INFO_CONSTANTS}.curlinfo_response_code, a_data)
|
create a_data.put (Void)
|
||||||
if l_result = 0 and then attached {INTEGER} a_data.item as l_http_status then
|
l_result := curl_easy.getinfo (curl_handle, {CURL_INFO_CONSTANTS}.curlinfo_response_code, a_data)
|
||||||
Result.status := l_http_status
|
if l_result = 0 and then attached {INTEGER} a_data.item as l_http_status then
|
||||||
|
Result.status := l_http_status
|
||||||
|
else
|
||||||
|
Result.status := 0
|
||||||
|
end
|
||||||
|
Result.body := l_curl_string.string
|
||||||
else
|
else
|
||||||
Result.status := 0
|
Result.set_error_occurred (True)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- last_api_call := l_url
|
|
||||||
curl_easy.cleanup (curl_handle)
|
curl_easy.cleanup (curl_handle)
|
||||||
|
|
||||||
|
|
||||||
Result.body := l_curl_string.string
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user