您的位置:首页 > 理论基础 > 计算机网络

使用HttpWebRequest提交信息

2010-02-23 08:20 337 查看
前段时间客户有一个需求,给手机发短信,接口是客户提供的,是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();

基本的思路就是这样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: