使用HttpWebRequest提交信息

前段时间客户有一个需求,给手机发短信,接口是客户提供的,是java做的一个servlet,只给一个servlet地址,要求发一段xml过去。当然这个xml是包含了手机及短信信息的,当然还有一些用户账户及密码信息。

 

其实这个是用HttpWebRequest提交信息的原理,代码如下:

//构建xml

 

StringBuilder requestData = new StringBuilder();
requestData.Append("<?xml version=/"1.0/" encoding=/"GBK/" ?>");
requestData.Append("<REQUEST><TRANS_TYPE>SMS_DOWN_REQUEST</TRANS_TYPE>");
requestData.Append("<SP_ID>" + spId + "</SP_ID>");
requestData.Append("<PASSWORD>" + password + "</PASSWORD>");
requestData.Append("<SEQ_NUM>00100003</SEQ_NUM><MOBILE>" + mobile + "</MOBILE>");
requestData.Append("<CONTENT><![CDATA[" + content + "]]></CONTENT>");
requestData.Append("<DATETIME>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</DATETIME>");
requestData.Append("<PRIORITY>2</PRIORITY><EXTEND_CODE>999</EXTEND_CODE></REQUEST>");

//转成字节,对方要求用GBK转换
Byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(requestData.ToString());

 

         //得到request流,将内容写进流中,这里的requestUrl就是对方给的地址。

           Uri uri = new Uri(requestUrl);
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
           
            request.Method = "POST";
            request.ContentLength = buffer.Length;
            Stream reqStream = request.GetRequestStream();
            reqStream.Write(buffer, 0, buffer.Length);
            reqStream.Flush();
            reqStream.Close();

 

          //得到响应的内容,这一步相当重要,要不然内容提交不过去。

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding("GBK"));
            string resXml = sr.ReadToEnd();
            sr.Close();

 

基本的思路就是这样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值