Simple AsyncHttpRequest where uri is an attribute

Prints on communication errors and when the remote server returns an HTTP status code not in the 200s.

This class can be instantiated to execute a request where the response is ignored by the application. Alternatively, it can be subclassed to implement on_load.

var request = new SimpleAsyncHttpRequest("http://example.com")
request.start

Introduced properties

Redefined properties

redef type SELF: SimpleAsyncHttpRequest

app $ SimpleAsyncHttpRequest :: SELF

Type of this instance, automatically specialized in every class
redef fun on_load(data: nullable Object, status: Int)

app $ SimpleAsyncHttpRequest :: on_load

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

app $ SimpleAsyncHttpRequest :: 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
protected fun uri=(uri: Text)

app :: SimpleAsyncHttpRequest :: uri=

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
package_diagram app::SimpleAsyncHttpRequest SimpleAsyncHttpRequest app::AsyncHttpRequest AsyncHttpRequest app::SimpleAsyncHttpRequest->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 $ SimpleAsyncHttpRequest
# Simple `AsyncHttpRequest` where `uri` is an attribute
#
# Prints on communication errors and when the remote server returns an
# HTTP status code not in the 200s.
#
# This class can be instantiated to execute a request where the response is
# ignored by the application. Alternatively, it can be subclassed to implement
# `on_load`.
#
# ~~~nitish
# var request = new SimpleAsyncHttpRequest("http://example.com")
# request.start
# ~~~
class SimpleAsyncHttpRequest
	super AsyncHttpRequest

	redef var uri

	redef fun on_load(data, status) do if status < 200 or status >= 299
	then print_error "HTTP request '{uri}' received HTTP status code: {status}"
end
lib/app/http_request.nit:142,1--162,3