Moduł udostępnia zestaw funkcji do wykonywania operacji sieciowych. Umożliwia on operacje zarówno na poziome gniazd(socket) jak i protokołów wyższego poziomu tj. http, ftp.
Poniższe przykłady pokazują niskopoziomowe operacje na gniazdach, czyli zapis i odczyt tablicy bajtów.
Te metody za każdym wywołaniem tworzą nowe połączenie TCP. Są zalecane do pojedynczych operacji odczytu/zapisu z/do gniazda. Przy większych ilościach danych zalecane jest korzystanie z metod z paragrafu o predefiniowanych konektorach.
$// Wysłanie żądania HTTP GET do przykładowego hosta
$=(@data, "GET kernel.org")
$net.write("kernel.org", 80, $@data.getBytes())
$// Wysyłąnie i odbieranie żądania HTTP GET do przykładowego hosta
$=(@data, "GET kernel.org")
$toString($net.read("kernel.org", 80, $@data.getBytes()))
Powyższy przykład przed odebraniem danych wysyła żądanie do hosta, ale nie jest to obowiązkowe i żądanie może być null.
W konfiguracji instancji możliwe jest zdefiniowanie konektora TCP, który następnie można wykorzystać do operacji na gniazdach. Definiowanie konektorów jest opisane w artykule: Dokumentacja > Konektory > TCP. Ma to taką przewagę nad połączeniami przez host i port że zdefiniowany konektor jest używany przez pulę połączeń.
$// Wysłanie żądania HTTP GET do przykładowego konektora
$=(@data, "GET kernel.org")
$net.write("kernel_org_konkektor", $@data.getBytes())
$// Jak wyżej tylko wysyłane dane są w postaci Stringa. Kodowanie jest
$// ustalane na podstawie parametru 'charset' z konfiguracji konektora.
$net.write("kernel_org_konkektor", $@data)
$// Wysłanie i odczyt żądania HTTP GET do przykładowego konektora
$=(@data, "GET kernel.org")
$toString($net.read("kernel_org_konkektor", $@data.getBytes()))
$// Jak wyżej tylko wysyłane dane są w postaci Stringa. Kodowanie jest
$// ustalane na podstawie parametru 'charset' z konfiguracji konektora.
$toString($net.read("kernel_org_konkektor", $@data))
Moduł Net udostępnia metody w dwóch typów żądań HTTP:
$// Pobranie strony z przykładowego urla
$toString($net.httpGet("http://kernel.org", (Map) null))
$// Jak wyżej tylko z dodatkową uwierzytelnianiem
$toString($net.httpGet("http://kernel.org", (Map) null, "jkowalski", "haslo_jana"))
$// Pobranie strony z przykładowego urla
$toString($net.httpPost("http://kernel.org", (Map) null))
$// Jak wyżej tylko z dodatkową uwierzytelnianiem
$toString($net.httpPost("http://kernel.org", (Map) null, "jkowalski", "haslo_jana"))
Moduł Net udostępnia też zestaw metod 'narzędziowych' pozwalających na operowanie na żądaniu HTTP. Pozwalają one na wydobycie takich informacji jak: IP przeglądarki klienta, protokół, nazwę hosta, itp. Przykładowo poniższy kod:
# clientIp: $net.getClientIP()<br>
# queryProtocol: $net.getQueryProtocol()<br>
# queryHost: $net.getQueryHost()<br>
# queryURI: $net.getQueryURI()<br>
# queryParams: $net.getQueryParams()<br>
zwróci następujące rezultaty:
# clientIp: 127.0.0.1
# queryProtocol: http
# queryHost: localhost
# queryURI: /palio/html.run
# queryParams: _Instance=demo&_PageID=7
W module mamy metodę pozwalającą na pobranie pliku przez protokół FTP. Jej użycie wygląda następująco:
$// pobranie i zapisanie pliku na dysku
$=(@kernel, $net.ftpGet("ftp.kernel.org", (Long) null, (String) null, (String) null, "/pub/linux/kernel/v2.6/linux-2.6.9.tar.gz"))
$disk.write("/tmp/kernel.tar.gz", $@kernel)
Istnieje również moduł FTP którego stosowanie zaleca się w przypadku dużej ilości operacji przez FTP, gdyż działa on przez predefiniowany konektor FTP. Ma on również zaimplementowane więcej operacji protokołu FTP.