Simple asynchronous HTTP request to http://example.com/ displaying feedback to the window

Introduced properties

fun win: HttpRequestClientWindow

app :: MyHttpRequest :: win

Back reference to the window to show feedback to the user
protected fun win=(win: HttpRequestClientWindow)

app :: MyHttpRequest :: win=

Back reference to the window to show feedback to the user

Redefined properties

redef type SELF: MyHttpRequest

app $ MyHttpRequest :: SELF

Type of this instance, automatically specialized in every class
redef fun after

app $ MyHttpRequest :: after

Complete this request whether it was a success or not
redef fun before

app $ MyHttpRequest :: before

Prepare the UI or other parts of the program before executing the REST request
redef fun deserialize_json: Bool

app $ MyHttpRequest :: deserialize_json

Should the response content be deserialized from JSON?
redef fun on_fail(error: Error)

app $ MyHttpRequest :: on_fail

Invoked when the HTTP request has failed and no data was received or deserialization failed
redef fun on_load(data: nullable Object, status: Int)

app $ MyHttpRequest :: on_load

Invoked when the HTTP request returned valid data
redef fun uri: Text

app $ MyHttpRequest :: uri

URI target of this request, by default it is composed of uri_root / uri_tail

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type E: nullable Object

pthreads :: Thread :: E

Type returned by main
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun after

app :: AsyncHttpRequest :: after

Complete this request whether it was a success or not
fun before

app :: AsyncHttpRequest :: before

Prepare the UI or other parts of the program before executing the REST request
fun cancel

pthreads :: Thread :: cancel

Cancel the execution of the thread
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun delay: Float

app :: AsyncHttpRequest :: delay

Delay in seconds before sending this request
fun delay=(delay: Float)

app :: AsyncHttpRequest :: delay=

Delay in seconds before sending this request
fun deserialize_json: Bool

app :: AsyncHttpRequest :: deserialize_json

Should the response content be deserialized from JSON?
fun deserialize_json=(deserialize_json: Bool)

app :: AsyncHttpRequest :: deserialize_json=

Should the response content be deserialized from JSON?
fun finalize

core :: Finalizable :: finalize

Liberate any resources held by self before the memory holding self is freed
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
fun is_done: Bool

pthreads :: Thread :: is_done

Is this thread finished ? True when main returned
protected fun is_done=(is_done: Bool)

pthreads :: Thread :: is_done=

Is this thread finished ? True when main returned
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun join: E

pthreads :: Thread :: join

Join this thread to the calling thread
fun main: E

pthreads :: Thread :: main

Main method of this thread
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun on_fail(error: Error)

app :: AsyncHttpRequest :: on_fail

Invoked when the HTTP request has failed and no data was received or deserialization failed
fun on_load(result: nullable Object, http_status_code: Int)

app :: AsyncHttpRequest :: on_load

Invoked when the HTTP request returned valid data
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun start

pthreads :: Thread :: start

Start executing this thread
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun uri: Text

app :: AsyncHttpRequest :: uri

URI target of this request, by default it is composed of uri_root / uri_tail
abstract fun uri_root: String

app :: AsyncHttpRequest :: uri_root

Root URI of the remote server, usually the scheme and remote host
fun uri_tail: String

app :: AsyncHttpRequest :: uri_tail

Right part of the URI, after uri_root, often the resource path and the query
fun win: HttpRequestClientWindow

app :: MyHttpRequest :: win

Back reference to the window to show feedback to the user
protected fun win=(win: HttpRequestClientWindow)

app :: MyHttpRequest :: win=

Back reference to the window to show feedback to the user
package_diagram app::MyHttpRequest MyHttpRequest app::AsyncHttpRequest AsyncHttpRequest app::MyHttpRequest->app::AsyncHttpRequest pthreads::Thread Thread app::AsyncHttpRequest->pthreads::Thread ...pthreads::Thread ... ...pthreads::Thread->pthreads::Thread

Ancestors

class Finalizable

core :: Finalizable

An object needing finalization
interface Object

core :: Object

The root of the class hierarchy.
abstract class Thread

pthreads :: Thread

Handle to a thread

Parents

abstract class AsyncHttpRequest

app :: AsyncHttpRequest

Thread executing an HTTP request asynchronously

Class definitions

app $ MyHttpRequest
# Simple asynchronous HTTP request to http://example.com/ displaying feedback to the window
class MyHttpRequest
	super AsyncHttpRequest

	# Back reference to the window to show feedback to the user
	var win: HttpRequestClientWindow

	# ---
	# Config the request

	redef fun uri do return "http://example.com/"
	redef fun deserialize_json do return false

	# ---
	# Customize callbacks

	redef fun before
	do
		win.label_response.text = "Sending request..."

		# Disable button to prevent double requests
		win.button_request.enabled = false
	end

	redef fun on_load(data, status)
	do win.label_response.text = "Received response code {status} with {data.as(Text).byte_length} bytes"

	redef fun on_fail(error)
	do win.label_response.text = "Connection error: {error}"

	redef fun after do win.button_request.enabled = true
end
lib/app/examples/http_request_example.nit:27,1--58,3