topical media & game development
professional-javascript-17-webservice.js / js
function WebService() {
this.action = " ";
this.url = "";
}
WebService.prototype.buildRequest = function () {
return "";
};
WebService.prototype.handleResponse = function (oSOAP) {
};
WebService.prototype.send = function () {
if (isMoz) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (oError) {
alert(oError);
return false;
}
}
var oRequest = new XMLHttpRequest;
oRequest.open("post", this.url, false);
oRequest.setRequestHeader("Content-Type", "text/xml");
oRequest.setRequestHeader("SOAPAction", this.action);
oRequest.send(this.buildRequest());
if (oRequest.status == 200) {
return this.handleResponse(oRequest.responseText);
} else{
throw new Error("Request did not complete, code " + oRequest.status);
}
};
function TemperatureService() {
WebService.apply(this);
this.url = "http://services.xmethods.net:80/soap/servlet/rpcrouter";
this.zipcode = "";
}
TemperatureService.prototype = new WebService;
TemperatureService.prototype.buildRequest = function () {
var oBuffer = new StringBuffer();
oBuffer.append("<soap:Envelope xmlns:n=\"urn:xmethods-Temperature\" ");
oBuffer.append("xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" ");
oBuffer.append("xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" ");
oBuffer.append("xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" ");
oBuffer.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
oBuffer.append("<soap:Body soap:encodingStyle=");
oBuffer.append("\"http://schemas.xmlsoap.org/soap/encoding/\">");
oBuffer.append("<n:getTemp><zipcode xsi:type=\"xs:string\">");
oBuffer.append(this.zipcode);
oBuffer.append("</zipcode></n:getTemp></soap:Body></soap:Envelope>");
return oBuffer.toString();
};
TemperatureService.prototype.handleResponse = function (sResponse) {
var oRE = /<return .*?>(.*)<\/return>/gi;
oRE.test(sResponse);
return parseFloat(RegExp["$1"]);
};
TemperatureService.prototype.webServiceSend = TemperatureService.prototype.send;
TemperatureService.prototype.send = function (sZipcode) {
this.zipcode = sZipcode;
return this.webServiceSend();
};
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.