Bundle Shared networking types used across all HTTP libraries: Url (parsing and construction), Response (status code, headers, body), Cookie, and WebDownloader for streaming downloads. Compile with -lib net.
Url
URL parser, encoder and decoder
Implements: Compare
Operations
- New
- Compare
- Decode
- Encode
- GetFragment
- GetHost
- GetPath
- GetPort
- GetQuery
- GetQueryParameters
- GetScheme
- GetUrl
- HashID
- Parsed
- ToString
Compare #
Compares two objects
method : public : Compare(rhs:System.Compare) ~ IntParameters
| Name | Type | Description |
|---|---|---|
| rhs | Compare | compare object |
Return
| Type | Description |
|---|---|
| Int | 0 if equal, -1 if right-hand side i greater, 1 if left-hand side is greater |
Decode # native
General decoding for HTML or XML strings
function : native : Decode(str:String) ~ StringParameters
| Name | Type | Description |
|---|---|---|
| str | String | encoded string |
Return
| Type | Description |
|---|---|
| String | decoded string |
Example
encoded := "hello%20world%20%26%20foo%3Dbar";
decoded := Web.HTTP.Url->Decode(encoded);
decoded->PrintLine(); # hello world & foo=barEncode # native
General encoding for HTML or XML strings
function : native : Encode(str:String) ~ StringParameters
| Name | Type | Description |
|---|---|---|
| str | String | string to encode |
Return
| Type | Description |
|---|---|
| String | encoded string |
Example
raw := "hello world & foo=bar";
encoded := Web.HTTP.Url->Encode(raw);
encoded->PrintLine(); # hello%20world%20%26%20foo%3DbarGetFragment #
Gets fragment
method : public : GetFragment() ~ StringReturn
| Type | Description |
|---|---|
| String | fragment, Nil if not present |
GetHost #
Gets host
method : public : GetHost() ~ StringReturn
| Type | Description |
|---|---|
| String | host, Nil if not present |
GetPath #
Gets path
method : public : GetPath() ~ StringReturn
| Type | Description |
|---|---|
| String | path, Nil if not present |
GetQuery #
Gets scheme
method : public : GetQuery() ~ StringReturn
| Type | Description |
|---|---|
| String | scheme, Nil if not present |
GetQueryParameters #
Gets the name/value query parameters
method : public : GetQueryParameters() ~ Map<String,String>Return
| Type | Description |
|---|---|
| Map<String,String> | query parameters, Nil if URL cannot be parsed |
Example
url := Web.HTTP.Url->New("https://api.example.com/search?name=foo&lang=objeck");
params := url->GetQueryParameters();
params->Find("name")->PrintLine(); # foo
params->Find("lang")->PrintLine(); # objeckGetScheme #
Gets scheme
method : public : GetScheme() ~ StringReturn
| Type | Description |
|---|---|
| String | scheme, Nil if not present |
HashID #
Returns a hash ID for the given class
method : public : HashID() ~ IntReturn
| Type | Description |
|---|---|
| Int | hash ID |
New # constructor
Parsed URL into components
New(url:String)Parameters
| Name | Type | Description |
|---|---|---|
| url | String | raw URL |
Example
url := Web.HTTP.Url->New("https://example.com:8080/path?q=hello#section");
url->GetScheme()->PrintLine(); # https
url->GetHost()->PrintLine(); # example.com
url->GetPort()->PrintLine(); # 8080
url->GetPath()->PrintLine(); # /path
url->GetQuery()->PrintLine(); # q=hello
url->GetFragment()->PrintLine(); # sectionParsed #
Determines if given URL has been parsed correctly
method : public : Parsed() ~ BoolReturn
| Type | Description |
|---|---|
| Bool | true if parsed, false otherwise |
ToString #
String representation of URL
method : public : ToString() ~ StringReturn
| Type | Description |
|---|---|
| String | string representation of URL |
Example
url := Web.HTTP.Url->New("https://example.com/path?q=hello");
url->ToString()->PrintLine();
# 'https://example.com/path?q=hello
# scheme='https'
# host='example.com'
# path='/path'
# query='q=hello'