项目摘要:
该代码实现了一个通过HTTP GET和POST请求发送短信的功能。
代码首先定义了短信内容、用户ID、密码和接收手机号等参数,然后通过doGetRequest
和doPostRequest
函数分别发送GET和POST请求到短信接口。
GET请求直接将参数附加在URL中,而POST请求则将参数编码为字节数组后发送。两个函数均使用HttpWebRequest
和HttpWebResponse
处理HTTP请求和响应,并返回服务器响应内容。
代码最后在控制台输出GET和POST请求的响应结果。
代码如下:
Module SendEsms
Sub Main()
Dim strContent As String = "测试"
Dim uid As String = "test"
Dim pwd As String = "fa246d0262c3925617b0c72bb20eeb1d"
Dim mobile As String = "15900001111,13900001111"
'GET 方式
Dim getReturn As String = doGetRequest("http://api.sms.cn/sms/?ac=send&uid="+uid+"&pwd="+pwd+"&mobile="+mobile+"&content=" + strContent)
Console.WriteLine("Get response is: " & getReturn)
'POST 方式
Dim sbTemp As System.Text.StringBuilder = New System.Text.StringBuilder()
sbTemp.Append("ac=send&uid="+uid+"&pwd="+pwd+"&mobile="+mobile+"&content=" + strContent)
Dim bTemp() As Byte = System.Text.Encoding.GetEncoding("GBK").GetBytes(sbTemp.ToString())
Dim postReturn As String = doPostRequest("http://api.sms.cn/sms/", bTemp)
Console.WriteLine("Post response is: " + postReturn)
End Sub
'发送HTTP GET请求得结果
Private Function doGetRequest(ByVal url As String) As String
Dim strReturn As String = ""
Dim hwRequest As System.Net.HttpWebRequest
Dim hwResponse As System.Net.HttpWebResponse
Try
hwRequest = System.Net.HttpWebRequest.Create(url)
hwRequest.Timeout = 5000
hwRequest.Method = "GET"
hwRequest.ContentType = "application/x-www-form-urlencoded"
hwResponse = hwRequest.GetResponse()
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(hwResponse.GetResponseStream(), System.Text.Encoding.ASCII)
strReturn = srReader.ReadToEnd()
srReader.Close()
hwResponse.Close()
Catch
End Try
Return strReturn
End Function
'发送HTTP POST请求得结果
Private Function doPostRequest(ByVal url As String, ByVal bData() As Byte) As String
Dim strReturn As String = ""
Dim hwRequest As System.Net.HttpWebRequest
Dim hwResponse As System.Net.HttpWebResponse
Try
hwRequest = System.Net.HttpWebRequest.Create(url)
hwRequest.Timeout = 5000
hwRequest.Method = "POST"
hwRequest.ContentType = "application/x-www-form-urlencoded"
hwRequest.ContentLength = bData.Length
Dim smWrite As System.IO.Stream = hwRequest.GetRequestStream()
smWrite.Write(bData, 0, bData.Length)
smWrite.Close()
hwResponse = hwRequest.GetResponse()
Dim srReader As System.IO.StreamReader = New System.IO.StreamReader(hwResponse.GetResponseStream(), System.Text.Encoding.ASCII)
strReturn = srReader.ReadToEnd()
srReader.Close()
hwResponse.Close()
Catch
End Try
Return strReturn
End Function
End Module