C#_Soap调用webservice服务

C#_Soap调用webservice服务

如题,使用soap自定义方法调用webservice:

自定义代码块

方法内有注释:

using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections;
using System.Data;
using System.IO;
using System.Net;
using System.Text;
using System.Web.Services.Description;
using System.Xml;
using System.Xml.Serialization;
using Microsoft.CSharp;

namespace Wonders.InterfaceGuiYang.Services.Common
{
    /// <summary>
    /// 利用WebRequest/WebResponse进行WebService调用的类
    /// </summary>
    public class WdFuncWsCaller
    {
        //缓存xmlNamespace,避免重复调用GetNamespace
        private static readonly Hashtable XmlNamespace = new Hashtable();

        #region SOAP动态调用

        /// <summary>
        /// 通过SOAP协议动态调用webservice 
        /// </summary>
        /// <param name="url"> webservice地址</param>
        /// <param name="methodName"> 调用方法名</param>
        /// <param name="pars"> 参数表</param>
        /// <returns> 结果集xml的String格式</returns>
        public static String SoapWebServiceString(String url, String methodName, Hashtable pars)
        {
            XmlDocument doc = SoapWebService(url, methodName, pars);
            return doc.InnerText;
        }
        /// <summary>
        /// 通过SOAP协议动态调用webservice 
        /// </summary>
        /// <param name="url"> webservice地址</param>
        /// <param name="methodName"> 调用方法名</param>
        /// <param name="pars"> 参数表</param>
        /// <returns> 结果集转换的DataSet</returns>
        public static DataSet SoapWebServiceDataSet(String url, String methodName, Hashtable pars)
        {
            XmlDocument doc = SoapWebService(url, methodName, pars);
            System.Data.DataSet ds = new System.Data.DataSet();
            using (XmlNodeReader reader = new XmlNodeReader(doc))
            {
                ds.ReadXml(reader);
            }
            return ds;
        }
        /// <summary>
        /// 通过SOAP协议动态调用webservice 
        /// </summary>
        /// <param name="url"> webservice地址</param>
        /// <param name="methodName"> 调用方法名</param>
        /// <param name="pars"> 参数表</param>
        /// <returns> 结果集XmlDocument</returns>
        public static XmlDocument SoapWebService(String url, String methodName, Hashtable pars)
        {
            if (XmlNamespace.ContainsKey(url))
            {   // 名字空间在缓存中存在时,读取缓存,然后执行调用
                return QuerySoapWebService(url, methodName, pars, XmlNamespace[url].ToString());
            }
            // 名字空间不存在时直接从wsdl的请求中读取名字空间,然后执行调用
            return QuerySoapWebService(url, methodName, pars, GetNamespace(url));
        }
        /// <summary>
        /// 通过SOAP协议动态调用webservice  
        /// </summary>
        /// <param name="url"> webservice地址
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值