如何通过VB.NET发送短信

时间:2020-03-23 05:45:51

标签: vb.net

我尝试发送短信
在使用textlocal.in
这是我尝试过的代码

Public Function SendSms(sender As Object, e As EventArgs) Handles Button1.Click
    Dim apikey = txtAPI.Text
    Dim message = txtMsg.Text
    Dim numbers = txtNum.Text
    Dim strPOST As String
    Dim senderName = txtSend.Text
    Dim url As String = "https://api.textlocal.in/send/?"

    strPOST = url + "apikey=" + apikey _
    + "&numbers=" + numbers _
    + "&message=" + WebUtility.UrlEncode(message) _
    + "&sender=" + sender

    Dim request As WebRequest = WebRequest.Create(strPOST)
    request.Method = "POST"
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strPOST)
    request.ContentType = "application/x-www-form-urlencoded"
    request.ContentLength = byteArray.Length
    Dim dataStream As Stream = request.GetRequestStream()
    dataStream.Write(byteArray, 0, byteArray.Length)
    dataStream.Close()

    Dim response As WebResponse = request.GetResponse()
    dataStream = response.GetResponseStream()
    Dim reader As New StreamReader(dataStream)
    Dim responseFromServer As String = reader.ReadToEnd()
    Console.WriteLine(responseFromServer)
    Console.ReadLine()

    reader.Close()
    dataStream.Close()
    response.Close()

    If responseFromServer.Length > 0 Then
        Return responseFromServer
    Else
        Return CType(response, HttpWebResponse).StatusDescription
    End If
End Function

这表示未为字符串“ https://api.textlocal.in/send/?a”定义运算符“ +”,然后键入“按钮”

1 个答案:

答案 0 :(得分:0)

在此代码sender中是引发事件的按钮:

Public Function SendSms(sender As Object
                        ^^^^^^

这不是发送消息的人的电话号码。在此行上将sender替换为senderName

strPOST = url + "apikey=" + apikey _
+ "&numbers=" + numbers _
+ "&message=" + WebUtility.UrlEncode(message) _
+ "&sender=" + sender
               ^^^^^^^

除非您知道exactly what it is doing,否则不要使用+连接vb中的字符串

使用&连接字符串,但是在这种情况下,我建议您使用string formatting