X-Git-Url: http://nitlanguage.org diff --git a/lib/curl/curl.nit b/lib/curl/curl.nit index be31d6b..b68623b 100644 --- a/lib/curl/curl.nit +++ b/lib/curl/curl.nit @@ -77,15 +77,12 @@ class CurlHTTPRequest super NativeCurlCallbacks var url: String - var datas: nullable HeaderMap = null is writable - var headers: nullable HeaderMap = null is writable - var delegate: nullable CurlCallbacks = null is writable + var datas: nullable HeaderMap is writable + var headers: nullable HeaderMap is writable + var delegate: nullable CurlCallbacks is writable # Set the user agent for all following HTTP requests - fun user_agent=(name: String) - do - curl.native.easy_setopt(new CURLOption.user_agent, name) - end + var user_agent: nullable String is writable # Execute HTTP request with settings configured through attribute fun execute: CurlResponse @@ -104,6 +101,12 @@ class CurlHTTPRequest err = self.curl.native.easy_setopt(new CURLOption.url, url) if not err.is_ok then return answer_failure(err.to_i, err.to_s) + var user_agent = user_agent + if user_agent != null then + err = curl.native.easy_setopt(new CURLOption.user_agent, user_agent) + if not err.is_ok then return answer_failure(err.to_i, err.to_s) + end + # Callbacks err = self.curl.native.register_callback_header(callback_receiver) if not err.is_ok then return answer_failure(err.to_i, err.to_s) @@ -131,7 +134,7 @@ class CurlHTTPRequest if err_resp != null then return err_resp var st_code = self.curl.native.easy_getinfo_long(new CURLInfoLong.response_code) - if not st_code == null then success_response.status_code = st_code.response + if not st_code == null then success_response.status_code = st_code return success_response end @@ -176,16 +179,16 @@ class CurlHTTPRequest if err_resp != null then return err_resp var st_code = self.curl.native.easy_getinfo_long(new CURLInfoLong.response_code) - if not st_code == null then success_response.status_code = st_code.response + if not st_code == null then success_response.status_code = st_code var speed = self.curl.native.easy_getinfo_double(new CURLInfoDouble.speed_download) - if not speed == null then success_response.speed_download = speed.response + if not speed == null then success_response.speed_download = speed var size = self.curl.native.easy_getinfo_double(new CURLInfoDouble.size_download) - if not size == null then success_response.size_download = size.response + if not size == null then success_response.size_download = size var time = self.curl.native.easy_getinfo_double(new CURLInfoDouble.total_time) - if not time == null then success_response.total_time = time.response + if not time == null then success_response.total_time = time success_response.file.close @@ -194,6 +197,33 @@ class CurlHTTPRequest end # CURL Mail Request +# +# ~~~ +# # Craft mail +# var mail = new CurlMail("sender@example.org", +# to=["to@example.org"], cc=["bob@example.org"]) +# +# mail.headers_body["Content-Type:"] = """text/html; charset="UTF-8"""" +# mail.headers_body["Content-Transfer-Encoding:"] = "quoted-printable" +# +# mail.body = "