Dobar dan dobri ljudi!!
Imam sledeći problem:
Imam server, koji prima zahteve preko HTTP protokola, metod POST. Pošaljem mu XML fajl sa upitom, a on treba da mi vrati XML fajl sa podacima. Sve je to u teoriji lepo, ali ja ne znam kako da serveru prosledim XML podatke. Probao sam prvo da sastavim formu u HTML-u, ali to nije radilo jer se forma šalje u formatu koji server ne raspoznaje. Onda sam probao sa JavaScriptom, varijanta XMLHttpRequest, ali ni to nije radilo, jer, zbog sigurnosti, skript ne može da šalje ili dobija podatke sa drugog domena. Da li neko zna za neki "softnjer" koji može da pošalje XML upit na server i da primi odgovor od servera? Kad dobijem XML fajl, ostalo je lako (u smislu da izvučem podatke iz njega). Ako treba, pojasniću stvari detaljnije. Svaka pomoć je dobrodošla.
Hvala unapred.
Ispravka:
Na clientu nemam ništa. Klijent je moj komp u firmi. Treba mi rešenje za client. Ne znam šta je na serveru. Imam schema fajlove, tako da znam kako treba da formatiram upit. Ono što je problem je to što ne znam kako da pošaljem upit na server. Sve podatke koje imam o serveru su (slobodni prevod sa ukrajinskog jezika):
"Razmena podataka između klijenta i servera je u formatu XML. Protokol koji se koristi za transport je HTTP. Za upite se koristi metod POST. Šema idetifikacije je basic. Content-Type:text/xml. URL=http://catalog.ean.ua/interface/call"
U suštini, preko HTTP protokola pošaljem XML i dobijem XML nazad. Probao sam sledeće ali to ne radi (fajl se nalazi kod mene na hardu):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Form</title>
<script type="text/javascript">
function zeka()
{
xmlhttp = new XMLHttpRequest();
xmlhttp.setRequestHeader("Content-Type","text/xml");
xmlhttp.open("POST","
http://catalog.ean.ua/interface/call",false);
xmlhttp.send("<?xml version="1.0" encoding="UTF-8"?><GetList><gln>4820039800008</gln><maxRows>-1</maxRows></GetList>");
document.write(xmlhttp.responseText);
document.close()
}
</script>
</head>
<body>
<button onclick="zeka()">Zeka</button>
</body>
</html>
Možda ovaj script i nije u potpunosti tačan (u smislu poslednja dva reda funkcije zeka()), ali problem je u tome što, kada zovem metod open(), Mozilla daje poruku "Error: uncaught exception: Permission denied to call method XMLHttpRequest.open". Ovo se dešava (u ovo nisam siguran), zbog sigurnosti, tj. nemogućnosti skripta da koristi ovaj metod ako se stranica ne nalazi na domenu koji je ukazan u parametru URL metoda open.
Ono što je meni potrebno, nije rešenje za ovaj skript, već bilo kakav client software koji može preko HTTP-a da pošalje XML i primi i opciono snimi XML koji pošalje server.
Za sva rešenja i odgovore unapred zahvaljujem!!!
Pozdrav svima!
[Ovu poruku je menjao sharpshooter dana 03.11.2004. u 13:06 GMT+1]
[Ovu poruku je menjao sharpshooter dana 03.11.2004. u 16:24 GMT+1]