C#WebService带参数Post请求+WebService接口

方法:string HttpPostWebService(string url, string method, string num1, string num2)

string HttpPostWebService(string url, string method, string num1, string num2)
        {
            string result = string.Empty;
            string param = string.Empty;
            byte[] bytes = null;

            Stream writer = null;
            HttpWebRequest request = null;
            HttpWebResponse response = null;

            param = HttpUtility.UrlEncode("inta") + "=" + HttpUtility.UrlEncode(num1) + "&" + HttpUtility.UrlEncode("intb") + "=" + HttpUtility.UrlEncode(num2);
            bytes = Encoding.UTF8.GetBytes(param);

            request = (HttpWebRequest)WebRequest.Create(url + "/" + method);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = bytes.Length;

            try
            {
                writer = request.GetRequestStream();        //获取用于写入请求数据的Stream对象
            }
            catch (Exception ex)
            {
                return "";
            }

            writer.Write(bytes, 0, bytes.Length);       //把参数数据写入请求数据流
            writer.Close();

            try
            {
                response = (HttpWebResponse)request.GetResponse();      //获得响应
            }
            catch (WebException ex)
            {
                return "";
            }

            #region 这种方式读取到的是一个返回的结果字符串
            Stream stream = response.GetResponseStream();        //获取响应流
            XmlTextReader Reader = new XmlTextReader(stream);
            Reader.MoveToContent();
            result = Reader.ReadInnerXml();
            #endregion

            #region 这种方式读取到的是一个Xml格式的字符串
            //StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            //result = reader.ReadToEnd();
            #endregion 

            response.Dispose();
            response.Close();

            //reader.Close();
            //reader.Dispose();

            Reader.Dispose();
            Reader.Close();

            stream.Dispose();
            stream.Close();

            return result;
        }

调用

 string url = "http://localhost:50619/WebService.asmx";
                string method = "AddIton";
                string num1 = "1";
                string num2 = "2";
                string result = HttpPostWebService(url, method, num1, num2);

创建WebService接口

/// <summary>
    /// WebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    //[System.Web.Script.Services.ScriptService]
    public class WebService : System.Web.Services.WebService
    {
        public WebService()
        {

        }
        [WebMethod(MessageName ="AddIton",Description ="加法")]
        public int AddIton(int inta,int intb)
        {
            return inta+ intb;
        }

        [WebMethod]
        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
        public void HelloJson()
        {
            Context.Response.Clear();
            Context.Response.ContentType = "application/json";
            Context.Response.Write("{\"sResult\":\"1\",\"sMessage\":\"成品料号:  请联系人员处理\"}");
        }
        #region 接口说明:"WebService接口"

        public  Dictionary<String, String> MaterialArry = new Dictionary<String, String>();
        string Messages = "";
        [WebMethod(Description = "WebService接口")]     
        public void WSInterface()
        {
            string jsontext = string.Empty;
            string jsonReturn = string.Empty;
            try
            {
                Stream s = HttpContext.Current.Request.InputStream;//获得json 字符流,? ??
                string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值
                string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值
                byte[] b = new byte[s.Length];
                s.Position = 0;
                s.Read(b, 0, (int)s.Length);
                jsontext = Encoding.UTF8.GetString(b);
                string message = jsontext;
                Messages = message;
                MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);
                try
                {
                    if (string.IsNullOrEmpty(message.Trim()))
                    {
                        throw new Exception("请求参数为空。");
                    }
                    jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: 02.GB002.0001B\"}";
                }
                catch (Exception ex)
                {
                    jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: 02.GB002.0001A\"}";
                }
            }
            finally
            {
                Context.Response.Clear();
                Context.Response.Write(jsonReturn);
                //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常
                Context.Response.Flush();
                Context.Response.SuppressContent = true;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
        #endregion

        [WebMethod(Description = "MaterialLoading接口")]    
        public void MaterialLoading(string sJson)
        {
            string jsonReturn = string.Empty;
            try
            {
                string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值
                string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值             
                string message = sJson;
                Messages = message;
                MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);
                try
                {
                    if (string.IsNullOrEmpty(message.Trim()))
                    {
                        throw new Exception("请求参数为空。");
                    }
                    jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: MaterialLoading\"}";
                }
                catch (Exception ex)
                {
                    jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: MaterialLoading\"}";
                }
            }
            finally
            {
                Context.Response.Clear();
                Context.Response.Write(jsonReturn);
                //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常
                Context.Response.Flush();
                Context.Response.SuppressContent = true;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }

        [WebMethod(Description = "TwsLotInputForJson接口")]
        public void TwsLotInputForJson(string sJson)
        {
            string jsonReturn = string.Empty;
            try
            {
                string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值
                string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值

                string message = sJson;
                Messages = message;
                MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);
                try
                {
                    if (string.IsNullOrEmpty(message.Trim()))
                    {
                        throw new Exception("请求参数为空。");
                    }
                    jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: TwsLotInputForJson\"}";
                }
                catch (Exception ex)
                {
                    jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: TwsLotInputForJson\"}";
                }
            }
            finally
            {
                Context.Response.Clear();
                Context.Response.Write(jsonReturn);
                //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常
                Context.Response.Flush();
                Context.Response.SuppressContent = true;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
    }

链接: https://download.csdn.net/download/qq_29714537/85441914.

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值