代码改变世界

[iPad初试]系统介绍及数据交互

2011-05-20 23:26  dreamliu  阅读(525)  评论(0编辑  收藏  举报

在园子里逛了N久了,正好手上项目告一段落,将项目中用到的技术作下记录以便备忘。

我是做C#的,第一次做ipad方面的东西,由于项目比较急没有时间去学习ipad的开发技术,由于系统的数据完全来源于现有java系统,以webservice发布,并且要求直接对客户端授权,于是js+html5便是最佳选择了,项目与java的webservice部署在统一台服务器上,也就省去了跨域问题。当然jquery是少不了的了,另外还使用到了其他两个js文件json2.js(json序列化反序列化)和json2xml.js(xml序列化),下面便是jquery访问webservice的通用代码了。

/// <reference path="../jquery-1.5.js" />

var RequestHelper = {

Request:
function (data, sucessFn, errorFn, completeFn) {
var reqData = this.getSoapData(data);
$.ajax({
url:
this.getServiceUrl(),
type:
"POST",
dataType:
"text",
contentType:
"application/json; charset=utf-8",
data: reqData,
success:
function (json) {
if (sucessFn) { sucessFn(json); };//成功返回处理
},
error:
function (x, e) {
if (errorFn) { errorFn(x, e); }//此处可统一处理错误
}
},
complete:
function (xml) {
var xml2 = $(xml.responseText);
var retValue = xml2.text();
if (completeFn) { completeFn(retValue); }; //返回soap信封中的数据
}
});
},

getSoapData:
function (data) {
var sopaData = "";
sopaData
= "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">";
sopaData
+= "<SOAP-ENV:Body>";
sopaData
+= "<m:invoker xmlns:m=\"http://impl.controls.services.dreamliu.com/
sopaData
\">
";//此处命名空间已修改+= "<request>" + data + "</request>";
sopaData
+= "</m:invoker>";
sopaData
+= "</SOAP-ENV:Body>";
sopaData
+= "</SOAP-ENV:Envelope>";
return sopaData;
},

getServiceUrl:
function () {
var local = window.location.href;
local
= local.substring(0,local.indexOf(":8080"));
return(local + ":8080/your service method");
}
}