您的位置:首页 > 编程语言 > C#

贴个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添加键值对

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: