贴个c# wcf调用的代码

来源:互联网 发布:锻炼英语听力的软件 编辑:程序博客网 时间:2024/06/06 09:17
/** * 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添加键值对
 

原创粉丝点击