贴个c# wcf调用的代码
2013-06-09 17:50
267 查看
/** *SOAP调用封装类 * *@author2013-3-22QQ7617812 */ publicclassHomeLinkManager{ privatestaticfinalStringImgUploadUrl=ConstantInfo.websit +"/UploadUserAvatar.ashx"; //命名空间 privatestaticfinalStringNameSpace="http://tempuri.org/"; /** *privatestaticfinalStringURL="http://你的服务器/虚拟目录/你的服务.svc";private *staticfinalStringSOAP_ACTION="http://www.master.haku/你的服务/SayHello"; */ privatestaticfinalStringURL=ConstantInfo.websit+"/Service.svc"; privatestaticHomeLinkManagerHomeLinkManager; publicstaticHomeLinkManagergetInstance(){ if(HomeLinkManager==null){ HomeLinkManager=newHomeLinkManager(); } returnHomeLinkManager; } privateHomeLinkManager(){ } /** * *@paramparam *给定的第一个例如accountOrEmail *@paramlist *hashmap组成的list结合 *@parammethodname *回调的方法名 *@returnSoapObject对象 */ publicSoapObjectLoadResult(Stringparam, ArrayList<HashMap<String,Object>>list,Stringmethodname){ //SOAP_ACTION="http://tempuri.org/IAppContract/+方法名 StringSOAP_ACTION="http://tempuri.org/IAppContract/"+methodname; SoapObjectsoapObject=newSoapObject(NameSpace,methodname); //添加对象 for(Iteratoriterator=list.iterator();iterator.hasNext();){ HashMap<String,Object>hashMap=(HashMap<String,Object>)iterator .next(); for(Iteratoriterator2=hashMap.entrySet().iterator();iterator2 .hasNext();){ Entry<String,Object>entry=(Entry<String,Object>)iterator2 .next(); StringkeyString=entry.getKey(); ObjectvalueString=entry.getValue(); soapObject.addProperty(keyString,valueString); //LogUtils.log("test",keyString+""+valueString.toString()); } } SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope( SoapEnvelope.VER11);//版本 envelope.bodyOut=soapObject; envelope.dotNet=true; envelope.setOutputSoapObject(soapObject); envelope.encodingStyle="UTF-8"; SoapObjectresult=null; try{ HttpTransportSEtrans=newHttpTransportSE(URL,5000);//设置超时时间5秒 trans.debug=true;//使用调试功能 trans.call(SOAP_ACTION,envelope); LogUtils.log("test","CallSuccessful!"); result=(SoapObject)envelope.getResponse(); }catch(IOExceptione){ LogUtils.log("test","IOException"); e.printStackTrace(); }catch(XmlPullParserExceptione){ LogUtils.log("test","XmlPullParserException"); e.printStackTrace(); } returnresult; } publicSoapPrimitiveLoadReason(Stringparam, ArrayList<HashMap<String,Object>>list,Stringmethodname){ //SOAP_ACTION="http://tempuri.org/IAppContract/+方法名 StringSOAP_ACTION="http://tempuri.org/IAppContract/"+methodname; SoapObjectsoapObject=newSoapObject(NameSpace,methodname); //添加对象 for(Iteratoriterator=list.iterator();iterator.hasNext();){ HashMap<String,Object>hashMap=(HashMap<String,Object>)iterator .next(); for(Iteratoriterator2=hashMap.entrySet().iterator();iterator2 .hasNext();){ Entry<String,Object>entry=(Entry<String,Object>)iterator2 .next(); StringkeyString=entry.getKey(); ObjectvalueString=entry.getValue(); soapObject.addProperty(keyString,valueString); //LogUtils.log("test",keyString+""+valueString.toString()); } } SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope( SoapEnvelope.VER11);//版本 envelope.bodyOut=soapObject; envelope.dotNet=true; envelope.setOutputSoapObject(soapObject); envelope.encodingStyle="UTF-8"; SoapPrimitiveresult=null; try{ HttpTransportSEtrans=newHttpTransportSE(URL,5000);//设置超时时间5秒 trans.debug=true;//使用调试功能 trans.call(SOAP_ACTION,envelope); LogUtils.log("test","CallSuccessful!"); result=(SoapPrimitive)envelope.getResponse(); }catch(IOExceptione){ LogUtils.log("test","IOException"); e.printStackTrace(); }catch(XmlPullParserExceptione){ LogUtils.log("test","XmlPullParserException"); e.printStackTrace(); } returnresult; } }
调用如下
SoapObjectsoapObject=HomeLinkManager.getInstance().LoadResult(param,
list,"GetUserInfo");//param用户名//
可以把list去掉直接hashmap添加键值对
相关文章推荐
- c# webservice异步调用wcf 异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值
- C#代码直接调用WCF服务
- C#下面调用 Excel 另存代码
- .NET/C#利用反射调用含ref或out参数的方法示例代码
- C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
- WCF客户端C#代码 配置config文件
- 使用C#调用系统API实现内存注入的代码
- C#代码与javaScript函数的相互调用
- C#代码与javaScript函数的相互调用
- C#代码与javaScript函数的相互调用
- C#托管代码与C++非托管代码互相调用一(C#调用C++代码&.net 代码安全)
- .NET连接SAP系统专题:C#调用RFC代码(三)
- 在C#中如何调用C语言代码
- C#调用java代码
- C#使用DllImport调用非托管的代码
- C#托管代码与C++非托管代码互相调用
- .net中C#代码与javaScript函数的相互调用问题
- C#代码与javaScript函数的相互调用
- C#代码调用摄像头
- 从代码都发布遇到的问题总结(C#调用非托管dll文件,部署项目)