⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webservice.htc

📁 java开发时好多地方用javascript是很方便的,看看这个,对你有好处.
💻 HTC
📖 第 1 页 / 共 4 页
字号:
var va = new Array();
va[0] = sh[i];
szHeader += encodeArgs(oS, oM1, ta, va, 0, false);
}
}
return '<SOAP-ENV:Header>' + szHeader + "</SOAP-ENV:Header>\n";
}
function _invoke(oCall)
{
var szS = oCall.service;
var oS = _sdl[szS];
var co = oCall.co;
if (oS == null)
{
return postError(oCall, 1);
}
if (co.portName == null)
co.portName = oS.defPortName;
if (oS.soapPort[co.portName] == null)
{
callNext(oS);
return returnError(oCall, 8);
}
var oXmlHttp = ensureXmlHttp(co.async, oS);
if (oXmlHttp == null)
return returnError(oCall, 6);
var args = co.params == null ? oCall.args : co.params;
var cb = oCall.cb;
var j = cb == null ? 1 : 2;
j = co.params == null ? j : 0;
var oM = getMsg(szS, co, args, j);
var szParams = null;
if (oM != null)
{
szParams = encodeArgs(oS, oM, oM.args, args, j, co.params != null);
}
if (szParams == null)
{
callNext(oS);
return returnError(oCall, 0);
}
oCall.oM = oM;
if (showProgress == "true" || showProgress == true)
fnShowProgress();
var oP = oS.soapPort[co.portName];
var loc = co.endpoint == null ? oP.location : co.endpoint;
if (loc == null)
{
callNext(oS);
return returnError(oCall, 8);
}
try
{
if (co.userName == null)
oXmlHttp.xmlHttp.open("POST", loc, co.async);
else
oXmlHttp.xmlHttp.open("POST", loc, co.async,
co.userName, co.password == null ? "" : co.password);
}
catch (e)
{
callNext(oS);
return returnError(oCall, 5);
}
var szAction = oM.soapAction;
if (szAction != null && szAction.length > 0)
oXmlHttp.xmlHttp.setRequestHeader("SOAPAction", '"'+szAction+'"');
oXmlHttp.xmlHttp.setRequestHeader("Content-Type", "text/xml");
var sNS = ' xmlns=""';
for (var ns in oS.ns)
{
var nsuri = oS.ns[ns];
if (ns == "" || nsuri == "")
continue;
sNS +=  " xmlns:" + ns + '="' + nsuri + '"';
}
var szHeader = encodeHeader(oS, oM, oCall);
var szPayload = "<?xml version='1.0'?>\n<SOAP-ENV:Envelope"
+ (oM.es == null ? '' : (' SOAP-ENV:encodingStyle="' + oM.es + '"'))
+ sNS + ">\n"
+ szHeader
+ '<SOAP-ENV:Body>'
+ szParams + "</SOAP-ENV:Body>\n"
+ "</SOAP-ENV:Envelope>\n";
if (co.async)
{
oCall.oXmlHttp = oXmlHttp;
oXmlHttp.xmlHttp.onreadystatechange = function() {getResult(oCall);};
try
{
oXmlHttp.xmlHttp.send(szPayload);
}
catch(e)
{
return postError(oCall, 5);
}
return oCall.id;
}
try
{
oXmlHttp.xmlHttp.send(szPayload);
}
catch(e)
{
return returnError(oCall, 5);
}
if (oXmlHttp.xmlHttp.responseXML.parseError.errorCode != 0)
{
_errUnknownS.raw = oXmlHttp.xmlHttp.responseText;
return returnError(oCall, 4);
}
var r;
try
{
r = processResult(oCall, oXmlHttp.xmlHttp.responseXML.documentElement);
}
catch (e)
{
return returnError(oCall, 7);
}
return r;
}
function callService(service, args)
{
var oC = allocCall();
if (args.length < 1)
{
return postError(oC, 0);
}
var cb = null;
var iM = 0;
if (    typeof args[0] == "function"
||  typeof args[0] == "object" && args[0].funcName == null)
{
iM = 1;
cb = args[0];
}
var co;
if (typeof args[iM] == 'string')
co = createCallOptions(args[iM]);
else
co = cloneObject(args[iM]);
oC.co = co;
oC.cb = cb;
oC.service = service;
oC.args = args;
if (co.async == null)
co.async = true;
if (co.funcName == null)
{
return postError(oC, 0);
}
var oS = _sdl[service];
if (oS == null)
{
return postError(oC, 1);
}
if (co.async == false)
return oS.fPending ? returnError(oC, 1) : _invoke(oC);
if (oS.fSeq || oS.fPending)
{
if (oS.lastCall != null)
oS.lastCall.next = oC;
else
oS.nextCall = oC;
oS.lastCall = oC;
}
if (oS.fPending)
{
return oC.id;
}
if (!oS.fSeq)
_invoke(oC);
else if (oC == oS.nextCall && (oS.aXmlHttp == null || oS.aXmlHttp.fFree))
invokeNext(service);
return oC.id;
}
function useService(szService, userName, options)
{
if (    szService == null || szService.length == 0
||  userName == null  || userName.length == 0)
{
throw("Invalid arguments");
return;
}
var url = ensureWsdlUrl(szService);
var oProp = getAttribute(userName);
if (oProp == null)
{
oProp=document.createElement("<PUBLIC:PROPERTY NAME="+userName+" />");
_webservice.appendChild(oProp);
}
var oPropValue = new Object();
setAttribute(userName, oPropValue);
oPropValue.callService = function(){return callService(url, arguments)};
if (_sdl[url] != null)
{
if (options != null)
{
_sdl[url].fSeq = options.reuseConnection == null
? false : options.reuseConnection;
_sdl[url].SOAPHeader = options.SOAPHeader;
}
return;
}
var oXml = document.createElement("XML");
document.body.appendChild(oXml);
oS = new Object();
oS.sXmlHttp = null;
oS.aXmlHttp = null;
oS.fPending = true;
oS.nextCall = null;
oS.lastCall = null;
oS.url      = url;
oS._oXml    = oXml;
oS.ns = new Array();
oS.nsalias = new Array();
if (options != null)
{
oS.fSeq = options.reuseConnection;
oS.SOAPHeader = options.SOAPHeader;
}
if (oS.fSeq == null)
oS.fSeq = false;
_sdl[url]   = oS;
oXml.service = userName;
oXml.onreadystatechange = getSdl;
oXml.src = url;
return;
}
function getMsg(service, co, args, argIdx)
{
var oM;
var mn = co.funcName;
var oS = _sdl[service];
var sp = oS.soapPort[co.portName];
if (sp == null)
return null;
oM  = sp.msgs[mn];
if (oM == null || oM.length == null)
{
return null;
}
var om1;
for (om1 in oM)
{
if (co.params != null || oM[om1].args.length == args.length - argIdx)
{
oM = oM[om1];
break;
}
}
if (oM.length != null)
oM = oM[om1];
return oM;
}
function fixupDT(x)
{
return (x < 10) ? ("0" + x) : x;
}
function encTZ(d)
{
var tzo = d.getTimezoneOffset();
return (tzo > 0 ? '-' : '+') + fixupDT(tzo / 60) + ':' + fixupDT(tzo % 60);
}
function encodePrimitive(os, argType, argVal)
{
var sz = '';
switch(_st[argType])
{
case 1 :
sz = argVal;
break;
case 2 :
sz = "<![CDATA[" + argVal + "]]>";
break;
case 3 :
try
{
sz  =   argVal.getFullYear()
+   "-" + fixupDT(argVal.getMonth() + 1)
+   "-" + fixupDT(argVal.getDate())
+   "T" + fixupDT(argVal.getHours())
+   ":" + fixupDT(argVal.getMinutes())
+   ":" + fixupDT(argVal.getSeconds())
+   (argVal.getMilliseconds==null
? '' : ('.' + argVal.getMilliseconds()))
+   encTZ(argVal);
}
catch (e) { sz = argVal; }
break;
case 4 :
try
{
sz  =   argVal.getFullYear()
+   "-" + fixupDT(argVal.getMonth() + 1)
+   "-" + fixupDT(argVal.getDate())
+   encTZ(argVal);
}
catch (e) { sz = argVal; }
break;
case 5 :
try
{
sz  =   fixupDT(argVal.getHours())
+   ":" + fixupDT(argVal.getMinutes())
+   ":" + fixupDT(argVal.getSeconds())
+   (argVal.getMilliseconds==null
? '' : ('.' + argVal.getMilliseconds()))
+   encTZ(argVal);
}
catch (e) { sz = argVal; }
break;
case 6 :
case 7 :
sz = encb64(argVal);
break;
default :
sz = argVal;
}
return sz;
}
function bldJsAry(a, as, d)
{
if (d == as.length-1)
return;
for (var i = 0; i < as[d]; i++)
{
a[i] = new Array();
bldJsAry(a[i], as, d+1)
}
}
function getNextIndexAry(a, ai)
{
var i;
var l = a.length;
if (ai.length == 0)
{
for (i = 0; i < l; i++)
ai[i] = 0;
return true;
}
for (i = l - 1; i >= 0; i--)
{
if (i == 0 && 1 + ai[0] > a[0] - 1)
return false;
var x = ai[i] + 1;
if (x <= a[i] - 1)
{
ai[i] = x;
return true;
}
ai[i] = 0;
}
return true;
}
function vbArrayToJs(a, d)
{
ensureVBArray(d);
var szSize;
try { szSize = VBGetArySize(a, d); } catch (e) {return new Array()}
var aSize = szSize.split(",");
var aszIndex = new Array();
var ajs = new Array();
bldJsAry(ajs, aSize, 0);
var ai = new Array();
while (true == getNextIndexAry(aSize, ai))
{
var s = "ajs["+ai.join("][")+"]=VBGetAryItem"+d+"(a,"+ai.join(",")+");";
try { eval(s);} catch (e) {break;}
}
return ajs;
}
function encodeArray(os, t, nt, v, d)
{
var sz = "";
for (var i in v)
{
if (d == 1)
{
var ar = encodeVar(os, v[i], nt);
sz += '\n<' + t + ar[1] + '>' + ar[0] + '</' + t + '>';
}
else
sz += encodeArray(os, t, nt, v[i], d-1);
}
return sz;
}
function encodeVar(oS, v, t)
{
var ar = new Array("", "");
if (v == null)
return ar;
var oschm = getSchema(oS, t);
var ae = t.fArray ? t : getAryElem(os, oschm, t);
if (ae != null)
{
if (typeof v != 'object' && typeof v != 'unknown')
return ar;
var nt = cloneObject(ae);
nt.fArray = false;
var sArr = ae.sizeArray;
var k = 1;
k = (sArr == null) ? 1 : sArr.length;
if (typeof v == 'unknown')
v = vbArrayToJs(v, k);
ar[0] += encodeArray(oS, ae.type, nt, v, k);
return ar;
}
if (isSimpleType(oS, oschm, t))
{
ar[0] = encodePrimitive(oS, t.type, v);
return ar;
}
var et = oschm.types[t.type];
if (et == null)
{
try
{
var os = v.childNodes;
for (var i = 0; i < os.length; i ++)
{
ar[0] += os[i].xml;
}
}
catch (e) {}
return ar;
}
if (typeof v != 'object' || v.length > 0)
{
var et1 = get1stAryItem(et);
if (et1 == null)
return ar;
return encodeVar(oS, v, et1)
}
for (var k in et)
{
if (et[k] == null)
continue;
if (v[k] == null)
{
if (!et[k].fAttrib)
ar[0] += '\n<' + et[k].name + ' xsi:null="true"' + '/>\n';
continue;
}
if (et[k].fAttrib)
{
ar[1] += encodeAttrib(oS, v[k], et[k]);
continue;
}
var qt = "";
var asi = "";
var it = getAryElem(oS, getSchema(oS, et[k]), et[k]);
if (it != null)
{
asi = getArySizeInfo(it, v[k]);
var ts = (isPrimitive(oS, it) || et[k].ns == "")
? "xsd:" : (et[k].ns + ":");
asi = ' xsi:type="soapenc:Array"' + ' soapenc:arrayType="'
+ ts + it.type+'['+ asi +']"';
}
else if (isPrimitive(oS, et[k]))
qt = ' xsi:type="xsd:' + et[k].type + '"';
var ark = encodeVar(oS, v[k], et[k]);
ar[0] += '\n<' + et[k].name + qt + asi + ark[1] + '>'
+ ark[0] + '</' + et[k].name + '>';
}
return ar;
}
function getArySize(a)
{
var l = 0;
for (var x in a)
l++;
return l;
}
function get1stAryItem(a)
{
for (var x in a)
return a[x];
return null;
}
function getAryItemFromIndex(a, index)
{
var i = 0;
for (var x in a)
{
if (i == index)
return a[x];
i++;
}
return null;
}
function getSchema(os, t)
{
if (isPrimitive(os, t))
return null;
if (t.ns==null)
return get1stAryItem(os.schemas);
var nsUrl = os.ns[t.ns];
var oschm = os.schemas[nsUrl];
if (oschm != null || t.ns.length == 0)
return oschm;
for (var x in os.schemas)
if (x.indexOf(nsUrl) == 0 && os.schemas[x].types[t.type] != null)
return os.schemas[x];
return null;
}
function getArySizeInfo(at, av)
{
var as = at.sizeArray;
var k = 1;
k = (as == null) ? 1 : as.length;
var arr = av;
if (typeof arr == 'unknown')
arr = vbArrayToJs(arr, k);
var sArr = getArySize(arr);
if (as == null)
return sArr;
sArr = "";
for (var j = 0;;)
{
var l2 = getArySize(arr);
if (as[j] == null)
sArr+=l2;
else
sArr+=Math.min(as[j], l2);
j = j + 1;
if (j == as.length)
break;
sArr += ",";
if (l2 == 0)
return null;
arr = get1stAryItem(arr);
}
return sArr;
}
function encodeAttrib(oS, v, t)
{
if (t.type == null)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -