我正在尝试使用 vb6 发送 WhatsApp 消息,它在 Windows 10 上运行良好,但在 Windows 7 上调用 myMSXML.send strFormData 时出现错误,并且错误为空白。我不明白为什么它会出错。
我已经给出了下面的代码
Private Function PrepareAndSendMsg(Partyname As String, Number As String, Optional Message As String = "", Optional Document As String = "") As Boolean
On Error GoTo X
'Whats app Variables --------------------------
Dim apikey As String
Dim ApiToken As String
Dim strFormData As String
Dim strUrl As String
Dim filepathname As String
Dim myMSXML As Object
'----------------------------------------------
strUrl = Trim(GetDescription("SELECT ISNULL(URL,'') FROM WHATSAPPDATA"))
apikey = Trim(GetDescription("SELECT ISNULL(API,'') FROM WHATSAPPDATA"))
ApiToken = Trim(GetDescription("SELECT ISNULL(TOKEN,'') FROM WHATSAPPDATA"))
'filepathname = Trim(GetDescription("SELECT ISNULL(FILEPATH,'') FROM WHATSAPPDATA")) 'no need generated evrytime
If dataValidate(strUrl, apikey, ApiToken, filepathname, Partyname, Number) = False Then: PrepareAndSendMsg = False: Call writeLog("DATA VALIDATION : User Data Validation Falied", "Y"): Image1.Picture = LoadPicture(App.Path & "\images\Error.ico"): Exit Function
writeLog ("DATA VALIDATION : User Data Validation Successfull")
If Message <> "" Then
writeLog ("TYPE : Sending User ""MESSAGE""")
strFormData = "key=" & apikey & "&token=" & ApiToken & "&number=" & Number & "&message=" & Message & "&type=text"
ElseIf Document <> "" Then
writeLog ("TYPE : Sending User ""DOCUMENT""")
strFormData = "key=" & apikey & "&token=" & ApiToken & "&number=" & Number & "&filepath=" & Document & "&type=file"
Else
Call writeLog("Attchment or Message Not Found", "Y")
LbPartyName.Caption = "Message/Attachment Not Found"
PrepareAndSendMsg = False
Exit Function
End If
writeLog ("KEY : " & apikey)
writeLog ("TOKEN : " & ApiToken)
writeLog ("API : " & strFormData)
Set myMSXML = CreateObject("Microsoft.XmlHttp")
myMSXML.open "POST", "" & strUrl & "", False
myMSXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
myMSXML.setRequestHeader "User-Agent", "Firefox 3.6.4"
myMSXML.send strFormData
TxtRepsonse.Text = myMSXML.responseText
'Print Log and Close Here --------------
writeLog ("RESPONSE : " & TxtRepsonse.Text)
Call writeLog("", "Y")
'---------------------------------------
Timer11.Enabled = True
Exit Function
X:
writeLog ("ERROR : Preparin And Sending Message ->" & Err.Description)
PrepareAndSendMsg = False
MsgBox Err.Description, vbCritical, "Warning"
End Function
正如我提到的,错误是空白的,同样在 Windows 10 上运行良好。提到 Api 提供程序必须强制使用 POST 方法,不能使用 GET。
试试这个
设置 myMSXML = CreateObject("MSXML2.ServerXMLHTTP")。
嗨,我今天读了这篇文章,所以我也在开发这个程序,所以你可以发送这段代码的 dll 文件吗?谢谢你