c#调用webservice 示例

一、添加webservice链接地址

  1. 链接地址如下

http://HM01:8000/sap/bc/srt/wsdl/flv_10002A111AD1/srvc_url/sap/bc/srt/scs/sap/zhrom00
 

2、 C#添加引用—添加服务引用(S)…

3、输入链接地址 –前往(G)

这样就引用成功了

 4、调用webservice

            string REQNO = "1002201707202054190001";  //  接口输入参数

I_JSON

JSON

1002201707202054190001

            string      JSON = "[{ORDER: \"1\", PERNR: \"15\", TYPE: \"S\", MESSAGE: \"成功\"},{ORDER: \"2\", ORGID: \"16\", TYPE: \"E\", MESSAGE: \"失败\"}]";

// 接口输入参数

I_JSON

JSON

[{ORDER: "1", ORGID: "20000000", TYPE: "S", MESSAGE: ""},{ORDER: "2", ORGID: "20000001", TYPE: "S", MESSAGE: ""}]

     

            sms2.service web = new sms2.service();   // 实例化  webservice  服务类

            NetworkCredential myCred = new NetworkCredential("init1234", "87654321");

//          创建一个用户名密码

            web.Credentials = myCred;

            // web服务类引用, 用户名密码

            web.RequestEncoding = Encoding.UTF8;

            //  设置字符传输类型

            sms2.ZHROM001_RETURN zp = new sms2.ZHROM001_RETURN();

             //  输入参数类

            zp.I_REQNO = REQNO;

            zp.I_JSON = JSON;

             //  赋值

            sms2.ZHROM001_RETURNResponse Rps = web.ZHROM001_RETURN(zp);

            // 输出参数类           web服务调用函数 传入输入参数类

            string val = Rps.E_JSON;

            // 输出参数类赋值

// {type: "E", message: "更新失败"}    // 返回值

//  解析 json 字符串

            if (val.Contains("type"))    // 判断是否包含返回正确字符

            {

               

                JavaScriptObject jsonObj =            JavaScriptConvert.DeserializeObject<JavaScriptObject>(val);

                string type=jsonObj["type"].ToString();

                string message = jsonObj["message"].ToString();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#调用WebService的方法有两种,静态调用和动态调用。 静态调用是指通过添加WebService的引用来调用WebService。这种方式需要先在项目中添加WebService的引用,然后通过生成的代理类来访问WebService的方法。静态调用的缺点是如果WebService的地址或者内容发生改变,就需要重新添加引用。 动态调用是指在运行时动态创建WebService的代理类来调用WebService的方法。使用动态调用的方式可以解决静态调用中的问题,无需添加引用,可以根据实际情况动态调用不同的WebService。在C#中,可以使用WebClient、HttpWebRequest或者HttpClient等类来进行动态调用WebService。 以下是使用动态调用示例代码: ``` string url = "WebService的地址"; string methodName = "WebService的方法名"; string param1 = "参数1"; string param2 = "参数2"; // 创建HttpWebRequest对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; // 构建SOAP消息体 string soapRequest = string.Format( @"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""> <soap:Body> <{0} xmlns=""http://tempuri.org/""> <param1>{1}</param1> <param2>{2}</param2> </{0}> </soap:Body> </soap:Envelope>", methodName, param1, param2); byte[] requestData = Encoding.UTF8.GetBytes(soapRequest); request.ContentLength = requestData.Length; // 发送请求并获取响应 using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(requestData, 0, requestData.Length); } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { // 读取响应内容 using (StreamReader reader = new StreamReader(response.GetResponseStream())) { string responseXml = reader.ReadToEnd(); // 解析响应内容,获取结果 // ... } } ``` 通过以上的代码,你可以根据实际情况动态调用WebService的方法,并获取到返回的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值