/**
* SOAP 调用封装类
*
* @author 2013-3-22 QQ 7617812
*/
public class HomeLinkManager {
private static final String ImgUploadUrl = ConstantInfo.websit
+ "/UploadUserAvatar.ashx";
// 命名空间
private static final String NameSpace = "http://tempuri.org/";
/**
* private static final String URL = "http://你的服务器/虚拟目录/你的服务.svc"; private
* static final String SOAP_ACTION = "http://www.master.haku/你的服务/SayHello";
*/
private static final String URL = ConstantInfo.websit + "/Service.svc";
private static HomeLinkManager HomeLinkManager;
public static HomeLinkManager getInstance() {
if (HomeLinkManager == null) {
HomeLinkManager = new HomeLinkManager();
}
return HomeLinkManager;
}
private HomeLinkManager() {
}
/**
*
* @param param
* 给定的第一个例如accountOrEmail
* @param list
* hashmap组成的list结合
* @param methodname
* 回调的方法名
* @return SoapObject对象
*/
public SoapObject LoadResult(String param,
ArrayList<HashMap<String, Object>> list, String methodname) {
// SOAP_ACTION = "http://tempuri.org/IAppContract/+方法名
String SOAP_ACTION = "http://tempuri.org/IAppContract/" + methodname;
SoapObject soapObject = new SoapObject(NameSpace, methodname);
// 添加对象
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
HashMap<String, Object> hashMap = (HashMap<String, Object>) iterator
.next();
for (Iterator iterator2 = hashMap.entrySet().iterator(); iterator2
.hasNext();) {
Entry<String, Object> entry = (Entry<String, Object>) iterator2
.next();
String keyString = entry.getKey();
Object valueString = entry.getValue();
soapObject.addProperty(keyString, valueString);
// LogUtils.log("test",keyString+" "+valueString.toString());
}
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11); // 版本
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
envelope.encodingStyle = "UTF-8";
SoapObject result = null;
try {
HttpTransportSE trans = new HttpTransportSE(URL, 5000);// 设置超时时间5秒
trans.debug = true; // 使用调试功能
trans.call(SOAP_ACTION, envelope);
LogUtils.log("test", "Call Successful!");
result = (SoapObject) envelope.getResponse();
} catch (IOException e) {
LogUtils.log("test", "IOException");
e.printStackTrace();
} catch (XmlPullParserException e) {
LogUtils.log("test", "XmlPullParserException");
e.printStackTrace();
}
return result;
}
public SoapPrimitive LoadReason(String param,
ArrayList<HashMap<String, Object>> list, String methodname) {
// SOAP_ACTION = "http://tempuri.org/IAppContract/+方法名
String SOAP_ACTION = "http://tempuri.org/IAppContract/" + methodname;
SoapObject soapObject = new SoapObject(NameSpace, methodname);
// 添加对象
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
HashMap<String, Object> hashMap = (HashMap<String, Object>) iterator
.next();
for (Iterator iterator2 = hashMap.entrySet().iterator(); iterator2
.hasNext();) {
Entry<String, Object> entry = (Entry<String, Object>) iterator2
.next();
String keyString = entry.getKey();
Object valueString = entry.getValue();
soapObject.addProperty(keyString, valueString);
// LogUtils.log("test",keyString+" "+valueString.toString());
}
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11); // 版本
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
envelope.encodingStyle = "UTF-8";
SoapPrimitive result = null;
try {
HttpTransportSE trans = new HttpTransportSE(URL, 5000);// 设置超时时间5秒
trans.debug = true; // 使用调试功能
trans.call(SOAP_ACTION, envelope);
LogUtils.log("test", "Call Successful!");
result = (SoapPrimitive) envelope.getResponse();
} catch (IOException e) {
LogUtils.log("test", "IOException");
e.printStackTrace();
} catch (XmlPullParserException e) {
LogUtils.log("test", "XmlPullParserException");
e.printStackTrace();
}
return result;
}
}
调用如下
SoapObject soapObject = HomeLinkManager.getInstance().LoadResult(param,
list, "GetUserInfo");// param 用户名 //
可以把list去掉直接hashmap添加键值对