基于HttpWebRequest方式向接口地址发送请求

本例演示如何向一个WebService发送请求并获取返回值

请求端代码如下,可以使用request.Headers.Add方法,向请求头写入自定义参数

接收方获取方式为

HttpRequest hr = HttpContext.Current.Request;

hr.Headers["cmd1"].ToString()

[WebMethod(Description = "测试")]
        public string TestWebRequest(string p1,string p2)
        { 
         string strURL = "http://document.dongjiangoa.com/FlowManageNew/Common/OtherSystem.asmx/TESTPOST";
            System.Net.HttpWebRequest request;
            request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strURL);
            //Post请求方式
            request.Method = "POST";
            // 内容类型
            request.ContentType = "application/x-www-form-urlencoded";
            request.Headers.Add("cmd1", Uri.EscapeDataString(p1));
            request.Headers.Add("param1", Uri.EscapeDataString(p2));
            //这是原始代码:
            p1 = p1 + "111";
            p2 = p2 + "222";
            string paraUrlCoded = "cmd=" + Uri.EscapeDataString(p1) + "&param=" + Uri.EscapeDataString(p2);
            byte[] payload;
            //将URL编码后的字符串转化为字节
            payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
            //设置请求的 ContentLength 
            request.ContentLength = payload.Length;
            //获得请 求流
            Stream writer = request.GetRequestStream();
            //将请求参数写入流
            writer.Write(payload, 0, payload.Length);
            // 关闭请求流
            writer.Close();
            System.Net.HttpWebResponse response;
            // 获得响应流
            response = (System.Net.HttpWebResponse)request.GetResponse();
            System.IO.Stream s;
            s = response.GetResponseStream();
            XmlDocument d = new XmlDocument();
            d.Load(s);
            return d.InnerText;
            //MessageBox.Show(d.DocumentElement.InnerText);

        }

请求参数写入流中


相应的服务端(接收端)代码

[WebMethod(Description = "测试")]
        public string TESTPOST(string cmd, string param)
        {
            HttpRequest hr = HttpContext.Current.Request;
            return "Headers:cmd1:"+hr.Headers["cmd1"].ToString()+";param1:" + hr.Headers["param1"].ToString()+"\r\n"+ "方法名:" + cmd + ";" + "参数名:" + param;
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值