public class Spojenie extends Object
Táto trieda slúži na vytvorenie a udržiavanie komunikácie so serverom.
Príklady použitia – využitie pri komunikácii s PHP serverom:
Upozornenie: Na cieľovom serveri musia
jestvovať prislúchajúce PHP skripty, na ktoré sa nasledujúce príklady
odvolávajú. (Napríklad: login.php
, acceptFile.php
a podobne.)
Test spojenia:
Táto ukážka použitia predpokladá, že lokálny ("localhost"
)
PHP server je nakonfigurovaný tak, aby počúval na porte 81 a že
v podpriečinku bjpu-server
webového koreňa servera je uložený
jednoduchý PHP skript test.php
, ktorého výpis je uvedený
nižšie.
private
boolean
test() {Spojenie
spojenie =new
Spojenie
(); spojenie.vzdialenáCesta
("bjpu-server"
); spojenie.identifikátorÚdajov
("bluej-project-uploader"
); spojenie.port
(81
);boolean
úspech = spojenie.otvor
("test.php"
);return
spojenie.zavri
() && úspech; }
Príklad cieľového skriptu test.php
umiestneného na cieľovom
serveri (localhost
) v priečinku bjpu-server
(toto je
jediný PHP príklad uvedený v tejto dokumentácii):
<?phpheader
('Content-Type: text/plain; charset=UTF-8'
);echo
'ERR0: Connected.'
; ?>
Príklad prihlásenia sa (od tohto miesta ďalej bez PHP príkladov):
Upozornenie: Na cieľovom serveri musí
jestvovať prihlasovací skript login.php
, ktorý požaduje
prihlasovacie údaje (meno a heslo) v údajových poliach login
a password
.
private
Spojenie
spojenie =new
Spojenie
();public
boolean
prihlásSa(String
prihlasovacieMeno,String
heslo) {boolean
úspech;if
(úspech = spojenie.otvor
("login.php"
)) { úspech = spojenie.pridajÚdaj
("login"
, prihlasovacieMeno) && spojenie.pridajÚdaj
("password"
, heslo); }return
spojenie.zavri
() && úspech; }
Príklad odoslania textového súboru:
Upozornenie: Na cieľovom serveri musí
jestvovať PHP skript acceptFile.php
, ktorý očakáva prijatie
súboru, ktorý spracuje (napríklad uloží do databázy, vykoná určitú
akciu na základe jeho obsahu a podobne).
Poznámka: S použitím tejto triedy je v rámci
jedného otvoreného spojenia (ktoré je
ekvivaletné jednej obojsmernej komunikácii) možné odoslať iba jeden
súbor. To znamená, že príkaz pošliTextovýSúbor
(prípadne pošliSúbor
)
musí byť posledný príkazom spojenia a po ňom musí nasledovať volanie
metódy zavri
.
private
Spojenie
spojenie =new
Spojenie
();private
int
sessionID = -152
;// Jedinečný identifikátor sedenia
public
boolean
odošliTextovýSúbor(String
názovSúboru) {boolean
úspech;if
(úspech = spojenie.otvor
("acceptFile.php"
)) { úspech = spojenie.pridajÚdaj
("sessionID"
, sessionID) && spojenie.pošliTextovýSúbor
(názovSúboru); }return
spojenie.zavri
() && úspech; }
Príklad spracovania primitívnej textovej odpovede (s použitím
metódy dajOdpoveď
):
Poznámka: Budeme predpokladať, že odpoveď sa
bude zhodovať s nasledujúcou šablónou vyjadrenou pomocou regulárneho
výrazu:
ERR[+\-]{0,1}[0-9]+: «správa»
Príklady:
ERR0: OK
ERR-1: No error.
ERR+100: „Nejaká správa“
a podobne.
private
Spojenie
spojenie =new
Spojenie
();public
int
prevezmiChybovýKód() {String
odpoveď = spojenie.dajOdpoveď
();if
(null
!= odpoveď && odpoveď.startsWith
("ERR"
)) {int
index = odpoveď.indexOf
(':'
);if
(-1
!= index)try
{return
Integer.parseInt
(odpoveď.substring
(3
, index)); }catch
(Exception
e) { e.printStackTrace
(); } }return
-1
; }
Príklad vytvorenia metódy na prevzatie súboru zo servera (na požiadanie):
private
Spojenie
spojenie =new
Spojenie
();public
void
prevezmiSúbor(String
adresa) {// Svet.vykonaťNeskôr(() -> // (ak chceme sledovať priebeh)
{if
(spojenie.otvorLokalitu
(adresa)) {if
(!spojenie.zavri
())System
.out
.println
("Spojenie sa nepodarilo "
+"korektne zavrieť."
);String
uloženýAko = spojenie.uložOdpoveď
();if
(null
== uloženýAko)System
.out
.println
("Nepodarilo sa prevziať súbor z adresy: "
+ adresa);else
System
.out
.println
("Súbor prevzatý z adresy: "
+ adresa +"\nbol uložený ako: "
+ uloženýAko);// Ak chceme získať ďalšie detaily o požiadavke:
{System
.out
.println
("\nPožiadavka:"
);String
[] údaje = spojenie.dajÚdajePožiadavky
();if
(null
== údaje)System
.out
.println
("Žiadne údaje požiadavky."
);else
for
(String
údaj : údaje)System
.out
.println
(údaj); }// Ak chceme získať ďalšie detaily o odpovedi:
{System
.out
.println
("\nOdpoveď:"
);String
[] údaje = spojenie.dajÚdajeOdpovede
();if
(null
== údaje)System
.out
.println
("Žiadne údaje odpovede."
);else
for
(String
údaj : údaje)System
.out
.println
(údaj); } }else
System
.out
.println
("Nepodarilo sa ovoriť spojenie na "
+"prevzatie súboru z adresy: "
+ adresa); }// , true); // (ak chceme sledovať priebeh)
}// private static int percento = -1; // (ak chceme sledovať priebeh)
// (ak chceme sledovať priebeh)
// @Override public void sekvencia(int kódSpracovania, Object zdroj,
// Object cieľ, long stav, long celkovo)
// {
// if (stav > celkovo) stav = celkovo;
// percento = (int)((stav * 100) / celkovo);
// System.out.println(percento + " %");
// }
Poznámka: Táto trieda používa na generovanie pseudonáhodných čísiel implementáciu Mersennovho twistera z CERNu z roku 1999. Uvedená implementácia bola použitá aj v rámci procesu implementácie vlastnej optimalizovanej verzie generátora pseudonáhodných čísiel s binomickým rozložením. (Pozri zdroj nižšie.)
Súvisiaci zdroj:
Použité a odporúčané zdroje:
Modifikátor a typ | Trieda a opis |
---|---|
static interface |
Spojenie.Ladenie
Sieťová komunikácia je zložitá, preto bolo 7. 7. 2023 implementované
toto rozhranie ladenia.
|
Modifikátor a typ | Atribút a opis |
---|---|
Spojenie.Ladenie |
ladenie
Atribút rozhrania
Ladenie , ktorým sa dá bližšie
špecifikovať spôsob spracovania údajov ladenia generovaných aktuálnou
inštanciou spojenia. |
Konštruktor a opis |
---|
Spojenie()
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete
s predvolenými údajmi spojenia.
|
Spojenie(String doména)
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete
so zadanou doménou a ostatnými údajmi spojenia nastavenými na
predvolené hodnoty.
|
Spojenie(String doména,
String vzdialenáCesta)
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete
so zadanou doménou, vzdialenou cestou a ostatnými údajmi spojenia
nastavenými na predvolené hodnoty.
|
Modifikátor a typ | Metóda a opis |
---|---|
static String |
dajAdresu()
Táto statická metóda slúži na zistenie aktuálnej (IP) adresy
tohto zariadenia.
|
byte[] |
dajBajtyOdpovede()
Vráti odpoveď servera vo forme poľa bajtov.
|
byte[] |
dajBajtyOdpovede(String kódovanie)
Vráti odpoveď servera vo forme poľa bajtov.
|
static String |
dajHardverovuAdresu()
Alias pre
dajHardvérovúAdresu . |
static String |
dajHardvérovúAdresu()
Táto statická metóda slúži na zistenie aktuálnej hardvérovej
adresy tohto zariadenia.
|
int |
dajKodOdpovede()
Alias pre
dajKódOdpovede . |
int |
dajKódOdpovede()
Vráti kód poslednej odpovede servera.
|
static String |
dajNazovHosta()
Alias pre
dajNázovHosťa . |
static String |
dajNázovHosťa()
Táto statická metóda slúži na zistenie aktuálneho názvu hosťa,
to jest tohto zariadenia.
|
static String |
dajNazovHosta(boolean kánonický)
Alias pre
dajNázovHosťa . |
static String |
dajNázovHosťa(boolean kánonický)
Táto statická metóda slúži na zistenie aktuálneho názvu hosťa,
to jest tohto zariadenia.
|
String |
dajNazovSuboruOdpovede()
Alias pre
dajNázovSúboruOdpovede . |
String |
dajNázovSúboruOdpovede()
Zistí názov súboru odpovede.
|
String |
dajOdpoved()
Alias pre
dajOdpoveď . |
String |
dajOdpoveď()
Vráti odpoveď servera v textovej forme.
|
URLConnection |
dajSpojenie()
Poskytne objekt
URLConnection aktuálnej
správy. |
String |
dajTypObsahuOdpovede()
Vráti typ obsahu odpovede servera.
|
String[] |
dajUdajeOdpovede()
Alias pre
dajÚdajeOdpovede . |
String[] |
dajÚdajeOdpovede()
Vráti údaje súvisiace s odpoveďou servera vo forme poľa reťazcov.
|
String[] |
dajUdajePoziadavky()
Alias pre
dajÚdajePožiadavky . |
String[] |
dajÚdajePožiadavky()
Vráti údaje súvisiace s poslednou správou (požiadavkou poslanou
na server) vo forme poľa reťazcov.
|
long |
dajVelkostOdpovede()
Alias pre
dajVeľkosťOdpovede . |
long |
dajVeľkosťOdpovede()
Vráti veľkosť poslednej odpovede servera v bajtoch.
|
String |
domena()
Alias pre
doména . |
String |
doména()
Vráti aktuálnu doménu.
|
boolean |
domena(String doména)
Alias pre
doména . |
boolean |
doména(String doména)
Nastaví novú doménu.
|
boolean |
hlavickyPoslane()
Alias pre
hlavičkyPoslané . |
boolean |
hlavičkyPoslané()
Overí, či boli na server odoslané hlavičky spojenia.
|
String |
identifikatorUdajov()
Alias pre
identifikátorÚdajov . |
String |
identifikátorÚdajov()
Vráti aktuálny identifikátor údajov.
|
void |
identifikatorUdajov(String identifikátorÚdajov)
Alias pre
identifikátorÚdajov . |
void |
identifikátorÚdajov(String identifikátorÚdajov)
Nastaví nový identifikátor údajov.
|
String |
lokalnaCesta()
Alias pre
lokálnaCesta . |
String |
lokálnaCesta()
Vráti aktuálnu lokálnu cestu k súborom na odoslanie.
|
void |
lokalnaCesta(String lokálnaCesta)
Alias pre
lokálnaCesta . |
void |
lokálnaCesta(String lokálnaCesta)
Nastaví novú lokálnu cestu k súborom na odoslanie.
|
boolean |
odpovedPrecitana()
Alias pre
odpoveďPrečítaná . |
boolean |
odpoveďPrečítaná()
Overí, či bola alebo nebola prečítaná odpoveď servera.
|
boolean |
otvor(String vzdialenýSúbor)
Otvorí novú komunikáciu (vytvorí novú správu) so serverom určeným
konfiguráciou tejto inštancie (protokolom, doménou, portom, vzdialenou
cestou) a parametrom
vzdialenýSúbor tejto metódy. |
boolean |
otvor(String vzdialenýSúbor,
String prvýParameter,
String prváHodnota,
String... ďalšieParametreAHodnoty)
Otvorí novú komunikáciu (vytvorí novú správu) so serverom určeným
konfiguráciou tejto inštancie (protokolom, doménou, portom, vzdialenou
cestou) a parametrami tejto metódy (
vzdialenýSúbor ,
prvýParameter , prváHodnota a nepovinným variabilným
zoznamom ďalších parametrov a hodnôt). |
boolean |
otvorLokalitu(String adresa)
Otvorí novú komunikáciu podľa zadanej lokality.
|
int |
port()
Vráti aktuálne číslo portu.
|
boolean |
port(int port)
Nastaví nový port.
|
String |
posielatDatumPoslednejUpravy()
Alias pre
posielaťDátumPoslednejÚpravy . |
String |
posielaťDátumPoslednejÚpravy()
Zistí názov údajového poľa, v ktorom bude odoslaný dátum poslednej
úpravy súboru odosielaného na server.
|
void |
posielatDatumPoslednejUpravy(String názovPoľa)
Alias pre
posielaťDátumPoslednejÚpravy . |
void |
posielaťDátumPoslednejÚpravy(String názovPoľa)
Zmení názov údajového poľa, v ktorom bude odoslaný dátum poslednej
úpravy súboru odosielaného na server.
|
boolean |
posliSubor(String názovSúboru)
Alias pre
pošliSúbor . |
boolean |
posliSubor(String názovPoľa,
String názovSúboru)
Alias pre
pošliSúbor . |
boolean |
posliSubor(String názovPoľa,
String názovSúboru,
String typObsahu)
Alias pre
pošliSúbor . |
boolean |
posliTextovySubor(String názovSúboru)
Alias pre
pošliTextovýSúbor . |
boolean |
posliTextovySubor(String názovSúboru,
String kódovanie)
Alias pre
pošliTextovýSúbor . |
boolean |
posliTextovySubor(String názovPoľa,
String názovSúboru,
String kódovanie)
Alias pre
pošliTextovýSúbor . |
boolean |
pošliSúbor(String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pošliSúbor(String názovPoľa,
String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pošliSúbor(String názovPoľa,
String názovSúboru,
String typObsahu)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pošliTextovýSúbor(String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pošliTextovýSúbor(String názovSúboru,
String kódovanie)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pošliTextovýSúbor(String názovPoľa,
String názovSúboru,
String kódovanie)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
|
boolean |
pridajHlavicky(String... hlavičky)
Alias pre
pridajHlavičky . |
boolean |
pridajHlavičky(String... hlavičky)
Pridá jednu alebo viacero hlavičiek požiadavky k tejto správe, ak
ešte neboli poslané.
|
boolean |
pridajObsah(String obsah)
Pridá k obsahu tejto správy „surový“ (nijako neupravovaný) obsah.
|
boolean |
pridajUdaj(String názov,
double hodnota)
Alias pre
pridajÚdaj . |
boolean |
pridajÚdaj(String názov,
double hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe.
|
boolean |
pridajUdaj(String názov,
long hodnota)
Alias pre
pridajÚdaj . |
boolean |
pridajÚdaj(String názov,
long hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe.
|
boolean |
pridajUdaj(String názov,
String hodnota)
Alias pre
pridajÚdaj . |
boolean |
pridajÚdaj(String názov,
String hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe.
|
String |
protokol()
Vráti aktuálny protokol.
|
boolean |
protokol(String protokol)
Nastaví nový protokol.
|
String |
ulozOdpoved()
Alias pre
uložOdpoveď . |
String |
ulozOdpoved(String názovSúboru)
Alias pre
uložOdpoveď . |
String |
uložOdpoveď()
Uloží odpoveď servera do súboru.
|
String |
uložOdpoveď(String názovSúboru)
Uloží odpoveď servera do súboru so zadaným názvom.
|
String |
vzdialenaCesta()
Alias pre
vzdialenáCesta . |
String |
vzdialenáCesta()
Vráti aktuálnu vzdialenú cestu.
|
boolean |
vzdialenaCesta(String vzdialenáCesta)
Alias pre
vzdialenáCesta . |
boolean |
vzdialenáCesta(String vzdialenáCesta)
Nastaví novú vzdialenú cestu.
|
boolean |
zavri()
Odošle všetky neodoslané údaje, prečíta odpoveď servera a zavrie
aktuálne spojenie.
|
public Spojenie.Ladenie ladenie
Atribút rozhrania Ladenie
, ktorým sa dá bližšie
špecifikovať spôsob spracovania údajov ladenia generovaných aktuálnou
inštanciou spojenia.
public Spojenie()
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete s predvolenými údajmi spojenia. Predvolenými sú nasledujúce údaje súvisiace so sieťovou komunikáciou:
"http"
"localhost"
80
"grobot-data-boundary"
Spojenie(String)
,
Spojenie(String, String)
,
otvor(String)
,
zavri()
,
dajSpojenie()
public Spojenie(String doména)
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete
so zadanou doménou a ostatnými údajmi spojenia nastavenými na
predvolené hodnoty. Pozri konštruktor: Spojenie
doména
– cieľová doména tejto komunikácieGRobotException
– v prípade zadania chybných údajov spojeniaSpojenie(String)
,
Spojenie(String, String)
,
doména(String)
,
otvor(String)
,
zavri()
,
dajSpojenie()
public Spojenie(String doména, String vzdialenáCesta)
Vytvorí inštanciu komunikácie prostredníctvom počítačovej siete
so zadanou doménou, vzdialenou cestou a ostatnými údajmi spojenia
nastavenými na predvolené hodnoty. Pozri konštruktor: Spojenie
doména
– cieľová doména tejto komunikácievzdialenáCesta
– vzdialená cesta tejto komunikácieGRobotException
– v prípade zadania chybných údajov spojeniaSpojenie(String)
,
Spojenie(String, String)
,
doména(String)
,
vzdialenáCesta(String)
,
otvor(String)
,
zavri()
,
dajSpojenie()
public boolean protokol(String protokol)
Nastaví nový protokol.
protokol
– komunikačný protokol, napríklad http alebo httpstrue
v prípade úspechu, inak false
protokol()
,
Spojenie(String, String)
,
doména(String)
,
port(int)
,
vzdialenáCesta(String)
,
identifikátorÚdajov(String)
,
lokálnaCesta(String)
public String protokol()
Vráti aktuálny protokol.
protokol(String)
,
doména()
,
port()
,
vzdialenáCesta()
,
identifikátorÚdajov()
,
lokálnaCesta()
public boolean doména(String doména)
Nastaví novú doménu.
doména
– sieťová doména servera, s ktorým má byť nadviazaná
komunikáciatrue
v prípade úspechu, inak false
doména()
,
Spojenie(String)
,
protokol(String)
,
port(int)
,
vzdialenáCesta(String)
,
identifikátorÚdajov(String)
,
lokálnaCesta(String)
public String doména()
Vráti aktuálnu doménu.
doména(String)
,
protokol()
,
port()
,
vzdialenáCesta()
,
identifikátorÚdajov()
,
lokálnaCesta()
public boolean port(int port)
Nastaví nový port. Hodnota musí byť v rozsahu 0 – 65 535. Ak je zadaná hodnota mimo tohto rozsahu, port nebude nastavený (zmenený). Predvolenou hodnotou je číslo 80.
port
– číslo portu v rozsahu 0 – 65 535true
v prípade úspechu, inak false
port()
,
protokol(String)
,
doména(String)
,
vzdialenáCesta(String)
,
identifikátorÚdajov(String)
,
lokálnaCesta(String)
public int port()
Vráti aktuálne číslo portu. Predvolenou hodnotou je číslo portu 80.
port(int)
,
protokol()
,
doména()
,
vzdialenáCesta()
,
identifikátorÚdajov()
,
lokálnaCesta()
public boolean vzdialenáCesta(String vzdialenáCesta)
Nastaví novú vzdialenú cestu.
vzdialenáCesta
– vzdialená cesta na serveritrue
v prípade úspechu, inak false
vzdialenáCesta()
,
Spojenie(String, String)
,
protokol(String)
,
doména(String)
,
port(int)
,
identifikátorÚdajov(String)
,
lokálnaCesta(String)
public boolean vzdialenaCesta(String vzdialenáCesta)
Alias pre vzdialenáCesta
.
public String vzdialenáCesta()
Vráti aktuálnu vzdialenú cestu.
vzdialenáCesta(String)
,
protokol()
,
doména()
,
port()
,
identifikátorÚdajov()
,
lokálnaCesta()
public String vzdialenaCesta()
Alias pre vzdialenáCesta
.
public void identifikátorÚdajov(String identifikátorÚdajov)
Nastaví nový identifikátor údajov. Tento identifikátor slúži na
vytvorenie ohraničenia oblasti údajov HTTP požiadavky. Mal by byť
zvolený tak, aby sa priamo nevyskytoval v odosielaných údajoch.
Predvolená hodnota identifikátora je reťazec:
"grobot-data-boundary"
.
identifikátorÚdajov
– nový identifikátor, ktorý poslúži na
vytvorenie oddeľovača odosielaných údajovidentifikátorÚdajov()
,
protokol(String)
,
doména(String)
,
port(int)
,
vzdialenáCesta(String)
,
lokálnaCesta(String)
public void identifikatorUdajov(String identifikátorÚdajov)
Alias pre identifikátorÚdajov
.
public String identifikátorÚdajov()
Vráti aktuálny identifikátor údajov.
identifikátorÚdajov(String)
,
protokol()
,
doména()
,
port()
,
vzdialenáCesta()
,
lokálnaCesta()
public String identifikatorUdajov()
Alias pre identifikátorÚdajov
.
public void lokálnaCesta(String lokálnaCesta)
Nastaví novú lokálnu cestu k súborom na odoslanie.
Poznámka: Lokálnu cestu je vhodné nastaviť
pred volaním niektorého z klonov metód pošliTextovýSúbor
a pošliSúbor
.
lokálnaCesta
– lokálna cesta k súborom na odoslanielokálnaCesta()
,
protokol(String)
,
doména(String)
,
port(int)
,
vzdialenáCesta(String)
,
identifikátorÚdajov(String)
public void lokalnaCesta(String lokálnaCesta)
Alias pre lokálnaCesta
.
public String lokálnaCesta()
Vráti aktuálnu lokálnu cestu k súborom na odoslanie.
lokálnaCesta(String)
,
protokol()
,
doména()
,
port()
,
vzdialenáCesta()
,
identifikátorÚdajov()
public String lokalnaCesta()
Alias pre lokálnaCesta
.
public String[] dajÚdajePožiadavky()
Vráti údaje súvisiace s poslednou správou (požiadavkou poslanou
na server) vo forme poľa reťazcov. Volanie tejto metódy má zmysel
až po ukončení spojenia metódou zavri
.
Prvé dva prvky vrátené v poli obsahujú cieľovú adresu URL
rozdelenú na dve časti. Prvá časť je zostavená podľa konfigurácie
tohto spojenia – protokolu,
domény, portu
a vzdialenej cesty. Druhá časť
je vytvorená z parametra alebo parametrov niektorého z klonov metód
otvor
(vzdialenýSúbor
a pod.).
Ostatné prvky poľa sú tvorené údajmi hlavičky odoslanej správy. Táto metóda vráti len niektoré (HTTP) hlavičky poslednej požiadavky odoslanej na server a to tie, ktorých požiadavka na nastavenie bola aktívna v čase zahájenia posielania údajov na server. To znamená, že na server mohli byť poslané aj iné údaje (hlavičky), ktoré inštancia spojenia vytvorila podľa uváženia.
Ak sa spojenie zlyhalo alebo vznikla iná chyba, tak metóda vráti
hodnotu null
.
null
dajÚdajeOdpovede()
,
zavri()
public String[] dajUdajePoziadavky()
Alias pre dajÚdajePožiadavky
.
public boolean odpoveďPrečítaná()
Overí, či bola alebo nebola prečítaná odpoveď servera. Túto
skutočnosť má zmysel overovať až po ukončení spojenia metódou
zavri
, pričom uvedená metóda vracia rovnakú
hodnotu ako táto metóda.
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public boolean odpovedPrecitana()
Alias pre odpoveďPrečítaná
.
public String dajTypObsahuOdpovede()
Vráti typ obsahu odpovede servera. Volanie tejto metódy má zmysel
až po ukončení spojenia metódou zavri
. Ak je typ
obsahu neznámy, tak metóda vráti hodnotu null
.
null
, ak je
neznámyodpoveďPrečítaná()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public long dajVeľkosťOdpovede()
Vráti veľkosť poslednej odpovede servera v bajtoch. Volanie tejto
metódy má zmysel až po ukončení spojenia metódou zavri
. Ak sa odpoveď nepodarilo získať (alebo vznikla chyba), tak
metóda vráti hodnotu -1L
.
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public long dajVelkostOdpovede()
Alias pre dajVeľkosťOdpovede
.
public String[] dajÚdajeOdpovede()
Vráti údaje súvisiace s odpoveďou servera vo forme poľa reťazcov.
Volanie tejto metódy má zmysel až po ukončení spojenia metódou
zavri
.
Táto metóda v podstate vráti všetky HTTP hlavičky odpovede servera.
Ak sa odpoveď servera nepodarilo získať, tak metóda vráti hodnotu
null
.
null
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
dajÚdajePožiadavky()
,
zavri()
public String[] dajUdajeOdpovede()
Alias pre dajÚdajeOdpovede
.
public String dajOdpoveď()
Vráti odpoveď servera v textovej forme. Volanie tejto metódy má
zmysel až po ukončení spojenia metódou zavri
a len
v prípade, že máme istotu, že odpoveď servera je v textovej forme.
Typ obsahu odpovede je overiteľný metódou dajTypObsahuOdpovede
– textové typy obsahu
sú napríklad text/plain
text/html
a podobne. Ak
odpoveď servera nie je textová, tak táto metóda vráti hodnotu
null
.
null
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public String dajOdpoved()
Alias pre dajOdpoveď
.
public int dajKódOdpovede()
Vráti kód poslednej odpovede servera. Volanie tejto metódy má
zmysel až po ukončení spojenia metódou zavri
.
Ak sa kód odpovede servera nepodarilo zistiť, tak metóda vráti
hodnotu -1
. Pozitívnym signálom toho, že komunikácia
so serverom bola v poriadku je kód 200
–
HTTP_OK
. Ďalšie kódy s podrobným
opisom v anglickom jazyku môžete nájsť napríklad tu: RFC 2616 – Hypertext Transfer Protocol –
HTTP/1.1 – Section 10: Status Code Definitions (súhrnný zoznam
kódov sa nachádza v sekcii 6.1.1 uvedeného dokumentu; citované: 2018).
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajBajtyOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public int dajKodOdpovede()
Alias pre dajKódOdpovede
.
public byte[] dajBajtyOdpovede()
Vráti odpoveď servera vo forme poľa bajtov. Volanie tejto metódy
má zmysel až po ukončení spojenia metódou zavri
.
Ak bol typ odpovede textový, tak táto metóda vráti v poli bajtov
bajty reťazca s použitím kódovania podľa typu obsahu odpovede
(ktorý je overiteľný metódou dajTypObsahuOdpovede
) alebo UTF-8 (ak sa kódovanie nepodarilo
zistiť). Ak sa odpoveď servera nepodarilo získať (alebo bola priamo
uložená do súboru), tak táto metóda vráti hodnotu null
.
Ak chcete pri textovej odpovedi typ použitého kódovania vynútiť,
použite verziu tejto metódy
s parametrom kódovanie
.
null
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede(String)
,
dajNázovSúboruOdpovede()
,
zavri()
public byte[] dajBajtyOdpovede(String kódovanie)
Vráti odpoveď servera vo forme poľa bajtov. Volanie tejto metódy
má zmysel až po ukončení spojenia metódou zavri
.
Ak bol typ odpovede textový, tak táto metóda vráti v poli bajtov
bajty reťazca zakódované s použitím zadaného kódovania. (Typ obsahu
odpovede je overiteľný metódou dajTypObsahuOdpovede
.) Ak sa odpoveď servera nepodarilo získať
(alebo bola priamo uložená do súboru), tak táto metóda vráti hodnotu
null
.
null
odpoveďPrečítaná()
,
dajTypObsahuOdpovede()
,
dajVeľkosťOdpovede()
,
dajÚdajeOdpovede()
,
dajOdpoveď()
,
dajKódOdpovede()
,
dajBajtyOdpovede()
,
dajNázovSúboruOdpovede()
,
zavri()
public String dajNázovSúboruOdpovede()
Zistí názov súboru odpovede. Volanie tejto metódy má zmysel až po
ukončení spojenia metódou zavri
. Ak nie je odpoveď
textová, pokúsi sa názov prevziať z údajov prijatých v odpovedi. Ak
zlyhá, prevezme názov z požiadavky odoslanej na server (z parametra
vzdialenýSúbor
metódy otvor
alebo jej
klonu). V tom prípade overí typu obsahu odpovede a ak je text/html
, upraví príponu na
.html
.
public String dajNazovSuboruOdpovede()
Alias pre dajNázovSúboruOdpovede
.
public String uložOdpoveď()
Uloží odpoveď servera do súboru. Názov súboru prevezme s použitím
metódy dajNázovSúboruOdpovede
.
Súbor bude uložený na aktuálnu lokálnu cestu. Ak súbor s názvom na uloženie v cieľovom umiestnení
jestvuje, tak metóda upraví názov tak, aby nebol prepísaný žiadny
súbor. Metóda sa správa rozdielne podľa toho, či bola volaná pred
alebo po ukončení spojenia metódou zavri
. Ďalšie
podrobnosti (nielen o uvedenom rozdiele) sú v opise metódy uložOdpoveď
.
null
v prípade zlyhaniadajNázovSúboruOdpovede()
,
uložOdpoveď(String)
,
zavri()
public String ulozOdpoved()
Alias pre uložOdpoveď
.
public String uložOdpoveď(String názovSúboru)
Uloží odpoveď servera do súboru so zadaným názvom. Ak je táto
metóda volaná po ukončení spojenia metódou zavri
,
tak ukladá tie údaje, ktoré boli vopred prečítané a ktoré sú zároveň
dostupné prostredníctvom metódy dajÚdajeOdpovede
. V opačnom prípade začne údaje čítať a priebežne
ukladať sama, ale pri tomto spôsobe ich neukladá do vnútornej pamäte
a nebudú po ukončení spojenia dostupné metódou dajÚdajeOdpovede
. To je výhodné pri preberaní
väčších súborov, kedy by inak mohla nastať chyba v dôsledku preplnenia
pamäte. V oboch prípadoch bude súbor uložený na aktuálnu lokálnu cestu. Ak súbor s názvom na uloženie
v cieľovom umiestnení jestvuje, tak metóda upraví názov tak, aby nebol
prepísaný žiadny súbor.
Metóda rozlišuje ešte jeden špeciálny prípad. Ak je volaná pred
ukončením spojenia (pretože len v tom prípade ešte neboli na server
odoslané údaje o požiadavke), tak ak pred začatím ukladania nájde
súbor zodpovedajúci šablóne názvu súboru s pripojeným reťazcom
-part
, tak tento súbor bude považovať za časť preberaného
súboru, ktorého preberanie predtým zlyhalo. Vtedy zo servera vyžiada
zvyšnú časť súboru a prijímané údaje pripojí k nájdenému súboru.
Upozornenie: Obnovenie zlyhaného
preberania funguje len v tom prípade, ak server podporuje odosielanie
rozsahov bajtov (čiže častí súborov, ktoré si klient vyžiadal). Ak
server nie je nakonfigurovaný tak, aby bol schopný odoslať len
vyžiadaný rozsah bajtov (prípadne táto voľba nie je podporovaná pre
vyžiadaný typ súboru), tak obnovenie preberania nebude možné, čo
metóda signalizuje vrátením hodnoty null
.
V prípade okamžitého preberania údajov bude metóda spúšťať reakciu
sekvencia
(s prislúchajúcim variantom pre jednotlivé roboty)
s kódom spracovania PREVZATIE_ÚDAJOV
.
názovSúboru
– názov súboru, pod ktorým by mala byť odpoveď
uloženánull
v prípade zlyhaniaGRobotException
– ak bol názov súboru zamlčaný (bola zadaná
hodnota null
)dajNázovSúboruOdpovede()
,
uložOdpoveď()
,
zavri()
public String ulozOdpoved(String názovSúboru)
Alias pre uložOdpoveď
.
public URLConnection dajSpojenie()
Poskytne objekt URLConnection
aktuálnej
správy. Volaním niektorého klonu metódy otvor
vzniká vždy nové spojenie – objekt URLConnection
, ktorý je k dispozícii aj po volaní metódy
zavri
, aby z neho bolo možné prevziať i také údaje,
ktoré trieda Spojenie
nespracúva. Rovnako je možné
prostredníctvom tohto objektu nastavovať v čase medzi otvorením a zatvorením spojenia
také údaje, s ktorými tiež trieda Spojenie
nepracuje. Ak doteraz nebolo vytvorené žiadne spojenie, tak metóda
vráti hodnotu null
.
URLConnection
alebo
hodnota null
otvor(String)
,
otvor(String, String, String, String...)
,
zavri()
public boolean otvor(String vzdialenýSúbor)
Otvorí novú komunikáciu (vytvorí novú správu) so serverom určeným
konfiguráciou tejto inštancie (protokolom, doménou, portom, vzdialenou
cestou) a parametrom vzdialenýSúbor
tejto metódy.
vzdialenýSúbor
– názov vzdialeného súboru (skriptu), ktorý má
byť prevzatý zo servera (ak ide o názov skriptu, tak tento bude
vykonaný na strane servera, ktorý odošle výsledok vykonania ako
odpoveď)true
v prípade úspechu, inak false
otvor(String, String, String, String...)
,
otvorLokalitu(String)
,
hlavičkyPoslané()
,
pridajHlavičky(String...)
,
pridajObsah(String)
,
pridajÚdaj(String, String)
,
pošliSúbor(String, String, String)
,
zavri()
,
dajSpojenie()
public boolean otvor(String vzdialenýSúbor, String prvýParameter, String prváHodnota, String... ďalšieParametreAHodnoty)
Otvorí novú komunikáciu (vytvorí novú správu) so serverom určeným
konfiguráciou tejto inštancie (protokolom, doménou, portom, vzdialenou
cestou) a parametrami tejto metódy (vzdialenýSúbor
,
prvýParameter
, prváHodnota
a nepovinným variabilným
zoznamom ďalších parametrov a hodnôt). Dvojice parametrov a hodnôt
sú k adrese pridávané v tvare parameter=hodnota
prvá dvojica
je od predchádzajúcej adresy oddelená otáznikom, ďalšie sú oddeľované
znakom &
. Ak je ľubovoľná hodnota (vrátane prvej) rovná
null
, tak je prislúchajúci parameter pridaný v bezhodnotovom
tvare: parameter
. Špeciálne znaky v názvoch parametrov aj
v ich hodnotách sú kódované podľa pravidiel URL kódovania – pozri URLEncoder
(Java Platform SE 8).
vzdialenýSúbor
– názov vzdialeného súboru (skriptu), ktorý má
byť prevzatý zo servera (ak ide o názov skriptu, tak tento bude
vykonaný na strane servera, ktorý odošle výsledok vykonania ako
odpoveď)prvýParameter
– názov prvého parametra, ktorý bude pridaný
k tejto požiadavkeprváHodnota
– hodnota prvého parametraďalšieParametreAHodnoty
– nepovinný zoznam ďalších dvojíc
názvov a hodnôt parametrov; každý názov musí mať párujúcu hodnotu;
ak má zoznam nepárny počet prvkov, tak posledný prvok nebude
použitý (ak aj chcete pridať posledný parameter v bezhodnotovom
tvare, stále musí byť prítomná posledná párujúca hodnota rovná
null
)true
v prípade úspechu, inak false
otvor(String)
,
otvorLokalitu(String)
,
hlavičkyPoslané()
,
pridajHlavičky(String...)
,
pridajObsah(String)
,
pridajÚdaj(String, String)
,
pošliSúbor(String, String, String)
,
dajÚdajePožiadavky()
,
dajÚdajeOdpovede()
,
zavri()
,
dajSpojenie()
public boolean otvorLokalitu(String adresa)
Otvorí novú komunikáciu podľa zadanej lokality. Metóda analyzuje
zadanú adresu a na základe výsledku analýzy nastaví protokol, doménu,
komunikačný port a vzdialenú cestu (zavolá vnútornú metódu
na ich nastavenie). Potom spustí metódu otvor
. Ak bol výsledok volania všetkých metód pozitívny, tak táto
metóda vráti hodnotu true
, inak vráti všetky zmeny
a vráti hodnotu false
. V prípade úspechu môžu byť
prostredníctvom prislúchajúcich metód pridávané ďalšie údaje a/alebo odoslaný súbor. Nakoniec musí byť spojenie korektne
ukončené.
adresa
– úplná adresa na analýzu, podľa ktorej sa vykoná
konfigurácia inštancie a otvorí sa nové spojenietrue
v prípade úspechu, inak false
protokol(String)
,
doména(String)
,
port(int)
,
vzdialenáCesta(String)
,
otvor(String)
,
hlavičkyPoslané()
,
pridajHlavičky(String...)
,
pridajObsah(String)
,
pridajÚdaj(String, String)
,
pošliSúbor(String, String, String)
,
zavri()
public boolean hlavičkyPoslané()
Overí, či boli na server odoslané hlavičky spojenia. Túto hodnotu má zmysel overovať v čase medzi otvorením a zavretím spojenia.
true
/false
podľa toho, či boli hlavičky
poslané, alebo niepridajHlavičky(String...)
,
otvor(String)
,
zavri()
public boolean hlavickyPoslane()
Alias pre hlavičkyPoslané
.
public boolean pridajHlavičky(String... hlavičky)
Pridá jednu alebo viacero hlavičiek požiadavky k tejto správe, ak ešte neboli poslané. Správa vzniká v okamihu otvorenia spojenia a posielanie hlavičiek nastáva pred poslaním ľubovoľného údaja na server.
Hlavičky sú zadávané ako dvojice hodnôt: kľúč, hodnota. Na server sú
potom posielané v tvare kľúč: hodnota
. Ďalšie užitočné
informácie o hlavičkách požiadavky sú dostupné tu (v anglickom jazyku).
hlavičky
– jedna alebo viacero hlavičiek – dvojíc kľúč/hodnota;
každý kľúč musí mať párujúcu hodnotu; ak má zoznam nepárny počet
prvkov, tak posledný prvok nebude použitý (ak aj chcete pridať
hlavičku v „bezhodnotovom“ tvare, tak zadajte párujúcu hodnotu
rovnú null
)true
v prípade úspechu (ak hlavičky ešte
neboli poslané), inak
false
hlavičkyPoslané()
,
otvor(String)
,
zavri()
public boolean pridajHlavicky(String... hlavičky)
Alias pre pridajHlavičky
.
public boolean pridajObsah(String obsah)
Pridá k obsahu tejto správy „surový“ (nijako neupravovaný) obsah. (Platia rovnaké informácie ako pri pridávaní údajov: Správa vzniká v okamihu otvorenia spojenia… Pozri aj rôzne príklady v hlavnom opise tejto triedy.)
obsah
– obsah na odoslanietrue
v prípade úspechu, inak false
pridajÚdaj(String, String)
,
otvor(String)
,
zavri()
public boolean pridajÚdaj(String názov, String hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe. Správa vzniká v okamihu otvorenia spojenia.
názov
– názov údaja na odoslaniehodnota
– hodnota údaja na odoslanietrue
v prípade úspechu, inak false
pridajÚdaj(String, long)
,
pridajÚdaj(String, double)
,
pridajObsah(String)
,
otvor(String)
,
zavri()
public boolean pridajUdaj(String názov, String hodnota)
Alias pre pridajÚdaj
.
public boolean pridajÚdaj(String názov, long hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe. Správa vzniká v okamihu otvorenia spojenia.
názov
– názov údaja na odoslaniehodnota
– hodnota údaja na odoslanietrue
v prípade úspechu, inak false
pridajÚdaj(String, String)
,
pridajÚdaj(String, double)
,
pridajObsah(String)
,
otvor(String)
,
zavri()
public boolean pridajUdaj(String názov, long hodnota)
Alias pre pridajÚdaj
.
public boolean pridajÚdaj(String názov, double hodnota)
Pridá údajové pole so zadaným názvom a hodnotou k tejto správe. Správa vzniká v okamihu otvorenia spojenia.
názov
– názov údaja na odoslaniehodnota
– hodnota údaja na odoslanietrue
v prípade úspechu, inak false
pridajÚdaj(String, String)
,
pridajÚdaj(String, long)
,
pridajObsah(String)
,
otvor(String)
,
zavri()
public boolean pridajUdaj(String názov, double hodnota)
Alias pre pridajÚdaj
.
public boolean pošliTextovýSúbor(String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
Odosielaný súbor musí mať predvolené kódovanie UTF-8. Metóda použije
predvolený názov údajového poľa tejto správy, pod ktorým bude obsah
súboru dostupný na serveri: "textFile"
.
V jednej správe je možné poslať len jeden súbor. Viac podrobností
nájdete v opise metódy pošliSúbor
. Po volaní tejto metódy musí nasledovať volanie metódy
zavri()
.
názovSúboru
– názov lokálneho súboru na odoslanietrue
v prípade úspechu, inak false
pošliTextovýSúbor(String, String)
,
pošliTextovýSúbor(String, String, String)
,
pošliSúbor(String)
,
pošliSúbor(String, String)
,
pošliSúbor(String, String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliTextovySubor(String názovSúboru)
Alias pre pošliTextovýSúbor
.
public boolean pošliTextovýSúbor(String názovSúboru, String kódovanie)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
Táto metóda dovoľuje spresniť kódovanie odosielaného textového súboru.
Metóda použije predvolený názov údajového poľa tejto správy, pod
ktorým bude obsah súboru dostupný na serveri: "textFile"
.
V jednej správe je možné poslať len jeden súbor. Viac podrobností
nájdete v opise metódy pošliSúbor
. Po volaní tejto metódy musí nasledovať volanie metódy
zavri()
.
názovSúboru
– názov lokálneho súboru na odoslaniekódovanie
– kódovanie textového súboru; predvoleným kódovaním je
UTF-8true
v prípade úspechu, inak false
pošliTextovýSúbor(String)
,
pošliTextovýSúbor(String, String, String)
,
pošliSúbor(String)
,
pošliSúbor(String, String)
,
pošliSúbor(String, String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliTextovySubor(String názovSúboru, String kódovanie)
Alias pre pošliTextovýSúbor
.
public boolean pošliTextovýSúbor(String názovPoľa, String názovSúboru, String kódovanie)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
Táto metóda dovoľuje spresniť kódovanie odosielaného textového súboru
a zadať názov údajového poľa tejto správy, pod ktorým bude súbor
dostupný na serveri.
V jednej správe je možné poslať len jeden súbor. Viac podrobností
nájdete v opise metódy pošliSúbor
. Po volaní tejto metódy musí nasledovať volanie metódy
zavri()
.
názovPoľa
– názov údajového poľa tejto správy priradeného
k odosielanému súborunázovSúboru
– názov lokálneho súboru na odoslaniekódovanie
– kódovanie textového súboru; predvoleným kódovaním je
UTF-8true
v prípade úspechu, inak false
pošliTextovýSúbor(String)
,
pošliTextovýSúbor(String, String)
,
pošliSúbor(String)
,
pošliSúbor(String, String)
,
pošliSúbor(String, String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliTextovySubor(String názovPoľa, String názovSúboru, String kódovanie)
Alias pre pošliTextovýSúbor
.
public boolean pošliSúbor(String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
Metóda použije predvolený názov údajového poľa tejto správy, pod
ktorým bude súbor dostupný na serveri: "uploadedFile"
a predvolený typ obsahu "application/octet-stream"
.
V jednej správe je možné poslať len jeden súbor. Viac podrobností
nájdete v opise metódy pošliSúbor
. Po volaní tejto metódy musí nasledovať volanie metódy
zavri()
.
názovSúboru
– názov lokálneho súboru na odoslanietrue
v prípade úspechu, inak false
pošliTextovýSúbor(String)
,
pošliTextovýSúbor(String, String)
,
pošliTextovýSúbor(String, String, String)
,
pošliSúbor(String, String)
,
pošliSúbor(String, String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliSubor(String názovSúboru)
Alias pre pošliSúbor
.
public boolean pošliSúbor(String názovPoľa, String názovSúboru)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom.
Súbor bude na serveri dostupný prostredníctvom údajového poľa so
zadaným názvom v parametri názovPoľa
. Metóda použije
predvolený typ obsahu "application/octet-stream"
.
V jednej správe je možné poslať len jeden súbor. Viac podrobností
nájdete v opise metódy pošliSúbor
. Po volaní tejto metódy musí nasledovať volanie metódy
zavri()
.
názovPoľa
– názov údajového poľa tejto správy priradeného
k odosielanému súborunázovSúboru
– názov lokálneho súboru na odoslanietrue
v prípade úspechu, inak false
pošliTextovýSúbor(String)
,
pošliTextovýSúbor(String, String)
,
pošliTextovýSúbor(String, String, String)
,
pošliSúbor(String)
,
pošliSúbor(String, String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliSubor(String názovPoľa, String názovSúboru)
Alias pre pošliSúbor
.
public boolean pošliSúbor(String názovPoľa, String názovSúboru, String typObsahu)
Odošle všetky neodoslané údaje spolu so súborom so zadaným názvom. Táto metóda umožňuje spresniť typ obsahu súboru odosielaného na server a zadať názov údajového poľa tejto správy, pod ktorým bude súbor dostupný na serveri.
Trieda Spojenie
z optimalizačných a bezpečnostných
dôvodov podporuje odoslanie len jedného súboru v rámci jednej
obojstrannej komunikácie (jednej správy) medzi klientom a serverom,
preto musí byť volanie tejto metódy posledným v rámci aktuálnej
komunikácie (to jest v rámci odosielania tejto správy) a po jej
vykonaní musí nasledovať volanie metódy zavri()
. Na odoslanie
ďalšieho súboru je potrebné otvoriť nové
spojenie.
Poznámka: Testovanie ukázalo, že serverový
PHP skript nie je schopný spracovať odoslaný súbor, ak spolu s ním
nebol odoslaný aspoň jeden údaj iného typu. Dôvod sa nám nepodarilo zistiť. Z toho dôvodu sme
sa rozhodli predvolene spolu so súborom odosielať aj čas jeho
poslednej úpravy v samostatnom údajovom poli, ktorého predvolený
názov je "lastModified"
. Predvolený názov sa dá zmeniť
metódou posielaťDátumPoslednejÚpravy
, pričom hodnota null
zruší
posielanie tohto údaja na server. V tom prípade musíte buď na server
poslať iný údaj, alebo použiť iný server, ktorý bude schopný súbor
spracovať aj bez poslania doplnkového údaja.
názovPoľa
– názov údajového poľa tejto správy priradeného
k odosielanému súborunázovSúboru
– názov lokálneho súboru na odoslanietypObsahu
– textový reťazec určujúci typ súboru – typ obsahu
tejto prílohy sieťovej komunikácietrue
v prípade úspechu, inak false
pošliTextovýSúbor(String)
,
pošliTextovýSúbor(String, String)
,
pošliTextovýSúbor(String, String, String)
,
pošliSúbor(String)
,
pošliSúbor(String, String)
,
posielaťDátumPoslednejÚpravy()
,
zavri()
public boolean posliSubor(String názovPoľa, String názovSúboru, String typObsahu)
Alias pre pošliSúbor
.
public String posielaťDátumPoslednejÚpravy()
Zistí názov údajového poľa, v ktorom bude odoslaný dátum poslednej
úpravy súboru odosielaného na server. Hodnota null
znamená,
že tento údaj nie je na server odosielaný. Predvolenou hodnotou je
"lastModified"
. Ďalšie podrobnosti nájdete v opise metódy
pošliSúbor
.
null
posielaťDátumPoslednejÚpravy(String)
,
pošliSúbor(String, String, String)
public String posielatDatumPoslednejUpravy()
Alias pre posielaťDátumPoslednejÚpravy
.
public void posielaťDátumPoslednejÚpravy(String názovPoľa)
Zmení názov údajového poľa, v ktorom bude odoslaný dátum poslednej
úpravy súboru odosielaného na server. Hodnota null
znamená,
že tento údaj nebude na server odoslaný. Predvolenou hodnotou je
"lastModified"
. Ďalšie podrobnosti nájdete v opise metódy
pošliSúbor
.
názovPoľa
– názov údajového poľa na odoslanie dátumu poslednej
úpravy (alebo null
)posielaťDátumPoslednejÚpravy()
,
pošliSúbor(String, String, String)
public void posielatDatumPoslednejUpravy(String názovPoľa)
Alias pre posielaťDátumPoslednejÚpravy
.
public boolean zavri()
Odošle všetky neodoslané údaje, prečíta odpoveď servera a zavrie
aktuálne spojenie. Ak bolo vykonanie tejto metódy úspešné, má zmysel
volať metódy slúžiace na zisťovanie údajov o odpovedi ako:
dajOdpoveď
, dajBajtyOdpovede
(podľa typu obsahu odpovede), dajVeľkosťOdpovede
, dajÚdajePožiadavky
dajÚdajeOdpovede
a tak ďalej.
true
v prípade úspechu, inak false
otvor(String)
,
otvor(String, String, String, String...)
,
hlavičkyPoslané()
,
pridajHlavičky(String...)
,
pridajObsah(String)
,
pridajÚdaj(String, String)
,
pošliSúbor(String, String, String)
,
dajOdpoveď()
,
uložOdpoveď()
,
dajÚdajePožiadavky()
,
dajÚdajeOdpovede()
,
dajSpojenie()
public static String dajNázovHosťa()
Táto statická metóda slúži na zistenie aktuálneho názvu hosťa, to jest tohto zariadenia. (Má ešte jednu verziu, ktorá umožňuje zistiť kánonický názov hosťa.)
GRobotException
– ak sa nepodarilo získať názov zariadenia
(hosťa)dajNázovHosťa(boolean)
,
dajAdresu()
,
dajHardvérovúAdresu()
public static String dajNazovHosta()
Alias pre dajNázovHosťa
.
public static String dajNázovHosťa(boolean kánonický)
Táto statická metóda slúži na zistenie aktuálneho názvu hosťa,
to jest tohto zariadenia. Hodnota parametra kánonický
určuje,
či má byť názov vrátený v kánonickej podobe.
kánonický
– ak je true
, tak je vrátená kánonická
podoba názvuGRobotException
– ak sa nepodarilo získať kánonický alebo
klasický názov zariadenia (hosťa)dajNázovHosťa()
,
dajAdresu()
,
dajHardvérovúAdresu()
public static String dajNazovHosta(boolean kánonický)
Alias pre dajNázovHosťa
.
public static String dajAdresu()
Táto statická metóda slúži na zistenie aktuálnej (IP) adresy tohto zariadenia. Adresa je vrátená v textovej podobe.
GRobotException
– ak sa nepodarilo získať adresu zariadenia
(hosťa)dajNázovHosťa()
,
dajNázovHosťa(boolean)
,
dajHardvérovúAdresu()
public static String dajHardvérovúAdresu()
Táto statická metóda slúži na zistenie aktuálnej hardvérovej adresy tohto zariadenia. Adresa je vrátená v textovej podobe.
GRobotException
– ak sa nepodarilo získať hardvérovú adresu
zariadenia (hosťa)dajNázovHosťa()
,
dajNázovHosťa(boolean)
,
dajAdresu()
public static String dajHardverovuAdresu()
Alias pre dajHardvérovúAdresu
.