程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 以Post方式向網頁發送數據

以Post方式向網頁發送數據

編輯:.NET實例教程

項目中用戶提出了新要求,把本來在項目內平台內發送的信息同時發送到手機上,好在他們已經有了短信的發送平台,只要調用其接口發送就可以了。

短信發送接口是用JSP實現的一個網頁,調用方式是以Post方式向該網頁發送數據。

在網絡上查找資料,幾乎都是同一個結果:

System.Net.WebRequest req = System.Net.WebRequest.Create(URI);

req.Proxy = new System.Net.WebProxy(ProxyString, true);

req.ContentType = "application/x-www-form-urlencoded";

req.Method = "POST";

byte [] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);

req.ContentLength = bytes.Length;

System.IO.Stream os = req.GetRequestStream ();

os.Write (bytes, 0, bytes.Length);

os.Close ();

System.Net.WebResponse resp = req.GetResponse();

if (resp== null) return null;

System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());

return sr.ReadToEnd().Trim();

再根據用戶給定的接口說明和Java例子修改,結果總是返回的結果是亂碼,再到網上查,說是編碼方式的問題,那沒有辦法了,只有多方嘗試了。經過近一天的不斷試驗,終於成功了。我的正確的代碼如下:

protected string SendMsg(string XMLMsg)

{

string urlPage = "http://www.handtimes.com/interface/forSCMIS.JSP";

Stream outstream = null;

Stream instream = null;

StreamReader sr = null;

HttpWebResponse response = null;

HttpWebRequest request = null;

// 要注意的這是這個編碼方式,我嘗試了很長的時間,還有內容的XML內容的編碼方式

Encoding encoding = Encoding.GetEncoding("GBK");

byte[] data = encoding.GetBytes(XMLMsg);

// 准備請求...

// 設置參數

request = WebRequest.Create(urlPage) as HttpWebRequest;

request.Method = "POST";

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

request.ContentType = "text/plain";

request.ContentLength = data.Length;

outstream = request.GetRequestStream();

outstream.Write(data, 0, data.Length);

outstream.Flush();

outstream.Close();

//發送請求並獲取相應回應數據

response = request.GetResponse() as HttpWebResponse;

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

instream = response.GetResponseStream();

sr = new StreamReader(instream, encoding);

//返回結果網頁(Html)代碼

string content = sr.ReadToEnd();

return content;

}

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved