VB6 XmlHttp.send STRING не работает. Исправлено использование Cstr (String). Помогите понять - PullRequest
0 голосов
/ 23 мая 2019

Я использую Visual Basic 6 для старой видеоигры и реализую API, написанный на Node.js. (http://www.argentumonline.org)

В любом случае, это моя функция

Public Sub ApiEndpointSendResetPasswordAccountEmail(ByVal Email As String, ByVal NewPassword As String)
    'Este endpoint envia un email para cambiar password al usuario

    UrlServer = GetVar(IniPath & "Server.ini", "CONEXIONAPI", "UrlServer") & "/api/v1/emails/resetAccountPassword"

    Dim Parameters As String
    Parameters = "newPassword=" & NewPassword & "&emailTo=" & Email

    Call SendPOSTRequest(UrlServer, Parameters)
End Sub


Private Sub SendPOSTRequest(ByVal Endpoint As String, ByVal Parameters As String)
On Error GoTo ErrorHandler

    Set XmlHttp = CreateObject("Microsoft.XmlHttp")

    XmlHttp.Open "POST", Endpoint, False
    XmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

    'Por alguna razon tengo que castearlo a string, sino no funciona, la verdad no tengo idea por que ya que la variable es String
    XmlHttp.send CStr(Parameters)

ErrorHandler:
    If Err.Number <> 0 Then
        Call LogError("Error POST endpoint: " & Endpoint & ". La Api parece estar offline. " & Err.Number & " - " & Err.description)
    End If
End Sub

Код работает нормально, но в этой строке: XmlHttp.send CStr(Parameters) Если я не приведу Parameters к строке, приложение не будет работать, и XmlHttp выдает ошибку, которая говорит что-то вроде The Resource can not be found. Параметры - это уже строка.

Есть идеи?

...