ASP.NET用Post方式向网页发送数据

开发 后端
本文向您介绍ASP.NET用Post方式向网页发送数据的方法。

ASP.NET项目中用户提出了新要求,把本来在项目内平台内发送的信息同时发送到手机上,好在他们已经有了短信的发送平台,只要调用其接口发送就可以了。

短信发送接口是用JSP实现的一个网页,调用方式是以Post方式向该网页发送数据。

在网络上查找资料,几乎都是同一个结果:

  1. System.Net.WebRequest req =  
  2.  System.Net.WebRequest.Create(URI);   
  3. req.Proxy = new System.Net.WebProxy(ProxyString, true); 

再根据用户给定的接口说明和Java例子修改,结果总是返回的结果是乱码,再到网上查,说是编码方式的问题,那没有办法了,只有多方尝试了。经过近一天的不断试验,ASP.NET用Post方式向网页发送数据终于成功了。我的正确的代码如下:

  1.  protected string SendMsg(string xmlMsg)   
  2. {   
  3. string urlPage =   
  4. "http://www.handtimes.com/interface/forSCMIS.jsp";   
  5. Stream outstream = null;   
  6. Stream instream = null;   
  7. StreamReader sr = null;   
  8. HttpWebResponse response = null;   
  9. HttpWebRequest request = null

// 要注意的这是这个编码方式,我尝试了很长的时间,还有内容的Xml内容的编码方式

  1. Encoding encoding = Encoding.GetEncoding("GBK");   
  2. byte[] data = encoding.GetBytes(xmlMsg); 

// 准备请求...
// 设置参数

  1. request = WebRequest.Create(urlPage) as HttpWebRequest;   
  2. request.Method = "POST"

// 这个地方的内容类型是接口文档上要求的,必须是这样的

  1. request.ContentType = "text/plain";   
  2. request.ContentLength = data.Length;   
  3. outstream = request.GetRequestStream();   
  4. outstream.Write(data, 0, data.Length);   
  5. outstream.Flush();   
  6. outstream.Close(); 

//发送请求并获取相应回应数据

  1. response = request.GetResponse() as HttpWebResponse; 

//直到request.GetResponse()程序才开始向目标网页发送Post请求

  1. instream = response.GetResponseStream();   
  2. sr = new StreamReader(instream, encoding); 

//返回结果网页(html)代码

  1. string content = sr.ReadToEnd();   
  2. return content;   

要说明的是,发送时地数据的编码和发送的内容(xml)的编码都是使用的GBK编码时成功了,因为用户给我的帐号不能发送到我自己的手机上,所以我不敢进行太多的尝试,成功后就没有再继续尝试,不知道影响返回的内容是乱码的是哪一个编码,还是两个都影响。

  1. req.ContentType = "  
  2. application/x-www-form-urlencoded";   
  3. req.Method = "POST";   
  4. byte [] bytes = System.Text.  
  5. Encoding.ASCII.GetBytes(Parameters);   
  6. req.ContentLength = bytes.Length;   
  7. System.IO.Stream os = req.GetRequestStream ();   
  8. os.Write (bytes, 0, bytes.Length);   
  9. os.Close ();   
  10. System.Net.WebResponse resp = req.GetResponse();   
  11. if (resp== nullreturn null;   
  12. System.IO.StreamReader sr = new System.IO.StreamReader  
  13. (resp.GetResponseStream());   
  14. return sr.ReadToEnd().Trim(); 

这样就完成了ASP.NET中用Post方式向网页发送数据。

【编辑推荐】

  1. ASP.NET中的HttpWorkerRequest对像
  2. 介绍ASP.NET MVC框架
  3. 配置ASP.NET AJAX概述
  4. 安装ASP.NET AJAX的过程
  5. ASP.NET页面请求原理浅析
    责任编辑:冰荷 来源: ctocio
    相关推荐

    2009-07-31 10:34:41

    ASP.NET抓取网页

    2009-07-20 17:03:55

    批量插入数据ASP.NET

    2009-07-22 17:45:11

    ASP.NET插件

    2009-07-29 16:53:52

    ASP.NET Get

    2009-08-13 17:52:27

    C#数据采集

    2009-07-28 17:17:19

    ASP.NET概述

    2009-08-03 14:22:33

    什么是ASP.NET

    2009-07-22 17:45:35

    ASP.NET教程

    2012-05-07 13:23:47

    ASP.NET

    2009-07-28 09:45:34

    Webpart部署方式使用ASP.NET

    2009-07-27 16:11:01

    ASP.NET网页模板

    2009-07-27 16:30:49

    母版资源ASP.NET网页模板

    2009-07-20 17:12:17

    ASP.NET访问数据

    2009-07-28 14:40:15

    XML数据ASP.NET

    2009-07-27 12:22:03

    ASP.NET和ASPASP.NET入门教程

    2009-07-29 15:26:43

    ASP.NET连接Or

    2009-02-05 14:02:46

    SmtpMail发送邮件ASP.NET

    2009-07-30 12:19:32

    ASP.NET中使用A

    2009-08-10 13:32:15

    ASP.NET TimASP.NET组件设计

    2011-05-23 10:37:03

    点赞
    收藏

    51CTO技术栈公众号