自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET用Post方式向網(wǎng)頁發(fā)送數(shù)據(jù)

開發(fā) 后端
本文向您介紹ASP.NET用Post方式向網(wǎng)頁發(fā)送數(shù)據(jù)的方法。

ASP.NET項目中用戶提出了新要求,把本來在項目內(nèi)平臺內(nèi)發(fā)送的信息同時發(fā)送到手機上,好在他們已經(jīng)有了短信的發(fā)送平臺,只要調(diào)用其接口發(fā)送就可以了。

短信發(fā)送接口是用JSP實現(xiàn)的一個網(wǎng)頁,調(diào)用方式是以Post方式向該網(wǎng)頁發(fā)送數(shù)據(jù)。

在網(wǎng)絡(luò)上查找資料,幾乎都是同一個結(jié)果:

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

再根據(jù)用戶給定的接口說明和Java例子修改,結(jié)果總是返回的結(jié)果是亂碼,再到網(wǎng)上查,說是編碼方式的問題,那沒有辦法了,只有多方嘗試了。經(jīng)過近一天的不斷試驗,ASP.NET用Post方式向網(wǎng)頁發(fā)送數(shù)據(jù)終于成功了。我的正確的代碼如下:

  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

// 要注意的這是這個編碼方式,我嘗試了很長的時間,還有內(nèi)容的Xml內(nèi)容的編碼方式

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

// 準備請求...
// 設(shè)置參數(shù)

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

// 這個地方的內(nèi)容類型是接口文檔上要求的,必須是這樣的

  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(); 

//發(fā)送請求并獲取相應(yīng)回應(yīng)數(shù)據(jù)

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

//直到request.GetResponse()程序才開始向目標網(wǎng)頁發(fā)送Post請求

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

//返回結(jié)果網(wǎng)頁(html)代碼

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

要說明的是,發(fā)送時地數(shù)據(jù)的編碼和發(fā)送的內(nèi)容(xml)的編碼都是使用的GBK編碼時成功了,因為用戶給我的帳號不能發(fā)送到我自己的手機上,所以我不敢進行太多的嘗試,成功后就沒有再繼續(xù)嘗試,不知道影響返回的內(nèi)容是亂碼的是哪一個編碼,還是兩個都影響。

  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方式向網(wǎng)頁發(fā)送數(shù)據(jù)。

【編輯推薦】

  1. ASP.NET中的HttpWorkerRequest對像
  2. 介紹ASP.NET MVC框架
  3. 配置ASP.NET AJAX概述
  4. 安裝ASP.NET AJAX的過程
  5. ASP.NET頁面請求原理淺析
    責任編輯:冰荷 來源: ctocio
    相關(guān)推薦

    2009-07-31 10:34:41

    ASP.NET抓取網(wǎng)頁

    2009-07-20 17:03:55

    批量插入數(shù)據(jù)ASP.NET

    2009-07-22 17:45:11

    ASP.NET插件

    2009-07-29 16:53:52

    ASP.NET Get

    2009-07-22 17:45:35

    ASP.NET教程

    2009-08-13 17:52:27

    C#數(shù)據(jù)采集

    2009-08-03 14:22:33

    什么是ASP.NET

    2009-07-28 17:17:19

    ASP.NET概述

    2009-07-28 09:45:34

    Webpart部署方式使用ASP.NET

    2012-05-07 13:23:47

    ASP.NET

    2009-07-28 14:40:15

    XML數(shù)據(jù)ASP.NET

    2009-07-27 12:22:03

    ASP.NET和ASPASP.NET入門教程

    2009-07-20 17:12:17

    ASP.NET訪問數(shù)據(jù)

    2009-07-27 16:30:49

    母版資源ASP.NET網(wǎng)頁模板

    2009-07-27 16:11:01

    ASP.NET網(wǎng)頁模板

    2009-07-29 15:26:43

    ASP.NET連接Or

    2011-07-04 15:41:14

    AjaxASP.NET

    2011-05-23 10:37:03

    2009-07-29 16:08:07

    ASP和ASP.NET

    2009-08-10 13:32:15

    ASP.NET TimASP.NET組件設(shè)計
    點贊
    收藏

    51CTO技術(shù)棧公眾號