社区编辑申请
注册/登录
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-08-03 18:47:12

    ASP.NET数据缓存

    2009-08-13 17:52:27

    C#数据采集

    2009-07-20 15:38:31

    ASP.NET 2.0发送电子邮件

    2009-12-16 09:16:53

    ASP.NET页面间数

    2009-03-31 09:18:34

    客户端内置对象ASP.NET

    2011-07-13 09:31:48

    ASP.NET数据传递

    2011-06-08 11:05:38

    getpost

    2009-07-22 18:08:00

    ASP.NET跨页提交

    2009-08-19 10:54:42

    ASP.NET数据访问

    2009-07-30 12:19:32

    ASP.NET中使用A

    2009-07-20 17:12:17

    ASP.NET访问数据

    2009-07-22 17:45:35

    2011-07-04 15:41:14

    AjaxASP.NET

    2009-07-28 17:17:19

    2009-03-13 09:48:33

    ASP.NETAjaxJQuery

    2011-07-12 13:53:25

    ASP.NETAjax

    2009-12-11 14:57:56

    ASP.NET

    2009-07-29 10:02:49

    ASP.NET上传

    2009-07-28 15:29:03

    实现HTTP请求ASP.NET

    2009-07-27 17:26:39

    同话题下的热门内容

    太强了!Python 开发桌面小工具,让代码替我们干重复的工作!Python轻量级Web框架:Bottle库!Python居然被用来开发游戏了?盘点你想不到的Python开发场景用了那么久的Lombok,你知道它的原理么?实战 | 如何用 Python 自动化监控文件夹完成服务部署!Fury:一个基于JIT动态编译的高性能多语言原生序列化框架细思恐极,插上U盘就开始执行Python代码为什么 Python、Ruby 等语言弃用了自增运算符?

    编辑推荐

    使用Kotlin做开发一个月后的感想面试官问你什么是消息队列?把这篇甩给他!五大自动化测试的Python框架图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)2018年最流行的十大编程语言,其中包括你用的语言吗?
    我收藏的内容
    点赞
    收藏

    51CTO技术栈公众号