Execute a simple HTTP GET request to the URL self

Set accept_status_code to the expected response HTTP code, defaults to 200. If a different status code is received, the return code is printed to stderr.

Returns the response body on success and null on error. Prints the error message to stderr.

For more control, set HTTP request headers, keep the response status code and much more, use CurlHTTPRequest.

assert "http://example.com/".http_get != null

Property definitions

curl :: extra $ Text :: http_get
	# Execute a simple HTTP GET request to the URL `self`
	#
	# Set `accept_status_code` to the expected response HTTP code, defaults to 200.
	# If a different status code is received, the return code is printed to stderr.
	#
	# Returns the response body on success and `null` on error. Prints the error
	# message to stderr.
	#
	# For more control, set HTTP request headers, keep the response status code
	# and much more, use `CurlHTTPRequest`.
	#
	# ~~~nitish
	# assert "http://example.com/".http_get != null
	# ~~~
	fun http_get(accept_status_code: nullable Int): nullable String
	do
		var req = new CurlHTTPRequest(self.to_s)
		var resp = req.execute
		req.close

		if resp isa CurlResponseSuccess then
			if resp.status_code == (accept_status_code or else 200) then
				return resp.body_str
			else
				print_error "HTTP request failed: server returned {resp.status_code}"
			end
		else if resp isa CurlResponseFailed then
			print_error "HTTP request failed: {resp.error_msg}"
		else abort
		return null
	end
lib/curl/extra.nit:22,2--52,4