在asp.net程式透過另一台server的簡訊服務來發送簡訊,
因為不希望讓user知道發送簡訊服務的網址來源
因此在程式後端透過WebRequest的方式來傳遞訊息
並且取得回應的訊息並Show回我們的介面。
Private Function SendMMS(ByVal tel_num As String, ByVal mms_msg As String) As String
If tel_num.Trim.Length = 0 Then Return "簡訊傳送失敗,查無手機號碼!!"
If tel_num.Trim.Length <> 10 Then Return "簡訊傳送失敗,手機號碼需為10碼!!"
If tel_num.Substring(0, 2) <> "09" Then Return "簡訊傳送失敗,手機號碼格式錯誤!!"
' 簡訊發送內容
Dim args As String = String.Empty
' 請記得將中文訊息Encode成big5格式,否則收到的簡訊有可能會是亂碼
System.Web.HttpContext.Current.Response.ContentEncoding = _
System.Text.Encoding.GetEncoding("big5")
args = System.Web.HttpContext.Current.Server.UrlEncode(mms_msg)
' 提供簡訊服務程式的URL 網址
Dim url As String = String.Format("http://xxx.xxx.xxx?tel={0}&mms={1}", tel_num, args)
Dim reqt As System.Net.WebRequest = System.Net.WebRequest.Create(url)
' 取得網頁資訊(網頁的Response訊息)
Dim resp As System.Net.WebResponse = reqt.GetResponse()
' 宣告StreamReader讀取回應資料
Dim str As System.IO.StreamReader = New _
System.IO.StreamReader (resp.GetResponseStream(),System.Text.Encoding.Default)
' 讀取回應資料
Dim ret_content As String = str.ReadToEnd()
str.Close()
resp.Close()
Return ret_content
End Function
註:
其實大家應該可以知道這程式的關鍵不在於發送簡訊
而是WebRequest,WebRequest這類別將透過Create方法
取得該URI所對應Web 網頁內容,可以試著將上面程式碼中的url設定成yahoo的網址
可以看出真正的含意
因為不希望讓user知道發送簡訊服務的網址來源
因此在程式後端透過WebRequest的方式來傳遞訊息
並且取得回應的訊息並Show回我們的介面。
Private Function SendMMS(ByVal tel_num As String, ByVal mms_msg As String) As String
If tel_num.Trim.Length = 0 Then Return "簡訊傳送失敗,查無手機號碼!!"
If tel_num.Trim.Length <> 10 Then Return "簡訊傳送失敗,手機號碼需為10碼!!"
If tel_num.Substring(0, 2) <> "09" Then Return "簡訊傳送失敗,手機號碼格式錯誤!!"
' 簡訊發送內容
Dim args As String = String.Empty
' 請記得將中文訊息Encode成big5格式,否則收到的簡訊有可能會是亂碼
System.Web.HttpContext.Current.Response.ContentEncoding = _
System.Text.Encoding.GetEncoding("big5")
args = System.Web.HttpContext.Current.Server.UrlEncode(mms_msg)
' 提供簡訊服務程式的URL 網址
Dim url As String = String.Format("http://xxx.xxx.xxx?tel={0}&mms={1}", tel_num, args)
Dim reqt As System.Net.WebRequest = System.Net.WebRequest.Create(url)
' 取得網頁資訊(網頁的Response訊息)
Dim resp As System.Net.WebResponse = reqt.GetResponse()
' 宣告StreamReader讀取回應資料
Dim str As System.IO.StreamReader = New _
System.IO.StreamReader (resp.GetResponseStream(),System.Text.Encoding.Default)
' 讀取回應資料
Dim ret_content As String = str.ReadToEnd()
str.Close()
resp.Close()
Return ret_content
End Function
註:
其實大家應該可以知道這程式的關鍵不在於發送簡訊
而是WebRequest,WebRequest這類別將透過Create方法
取得該URI所對應Web 網頁內容,可以試著將上面程式碼中的url設定成yahoo的網址
可以看出真正的含意
文章標籤
全站熱搜

您好,我是 Windows Form 來開發,這一段 System.Web.HttpContext.Current.Response.ContentEncoding = _ System.Text.Encoding.GetEncoding("big5") 應該如何改寫?或者 Imports 引用? 初次拜訪我剛有簡訊發送產生亂碼的問題,其您賜教。謝謝!
win form應是unicode的編碼 所以可能要請您在收到訊息/發出訊息時把送出去的字元轉成big5碼的格式
謝謝! 我試看看。
這篇文章不錯,供您參考 http://www.eggheadcafe.com/articles/20020323.asp
版主你好, 我現在有一網站需透過asp.net程式來送簡訊到客人手上 在網路上爬了一些相關文章, 網友們都說不同的電信公司有不同的程式通 訊規格 * 中華電信 -Winsock 介面(要寫 Winsock Client,即利用 System.Net.Socket 的類別去發送) * 遠傳電信 -簡訊工具箱(要安裝介面元件) * 台灣大哥大-使用 HTTP 介面(利用 System.Net.HttpWebRequest 和 System.Net.HttpWebResponse 實作) 我想請教, 那我的asp.net簡訊程式不就要寫3種(符合上面3家電信公司), 需要那麼麻煩嗎? 另外, 版主你post出來的程式是否可以一次應付上面3家電信公司的規格呢? 初次寫些簡訊程式, 需請你賜教, 謝謝.
dean兄: 簡訊發送的核心程式還是要透過您說的那三種方式來送出 因為我們必需配合電信公司的介面 ---- 我們剛好是遇到您說的HTTP 介面方式 只要透過Http的協定就可以來轉送。 ----- 建議您可以將第一二種方式包裝成轉成HTTP介面(利用url網址的方式)來傳送。 (不過這就需要自行開發轉接程式) 例如:訊息發送->自行開發HTTP介面->各種平台->送出 這樣應該可以一勞永逸^^
嗯, 大概懂了, 謝謝你