Формат переменных для передачи POST-ом через XMLHTTP

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Формат переменных для передачи POST-ом через XMLHTTP

Сообщение ALX_2002 » 29.09.2006 (Пт) 12:21

Челы. Убейте меня ап стену, но никак не получается.

Нужно через XMLHTTP эмулировать передачу данных аналогичную обычной форме в HTML странице.

Т.е передать переменные POST-ом на сервак на ASP страницу.

Поглядел по форуму, на Yandex и Google. На второй день решил всё таки у вас спросить.

ТОЧНО ПОМНЮ, ЧТО ОБСУЖДАЛОСЬ. Нашёл даже пару постов. Но опять же не заработало.

Делал так

Код: Выделить всё
Private Sub UserControl_Click()
SendRequest "http://127.0.0.1/q.asp", "POST", "a=1&b=2&c=3&d=4"
End Sub

Function SendRequest(Url As String, Optional Method As String, Optional QueryString As String)
    Dim XmlHttp As XMLHTTP26
    Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
    XmlHttp.open "POST", Url, True
'   Stop
    XmlHttp.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
    XmlHttp.send URLEncode(QueryString)
    'xml
    Do
        Sleep 10
        DoEvents
    Loop Until XmlHttp.readyState = 4
   
    If XmlHttp.Status = 200 Then
        MsgBox XmlHttp.responseText
    Else
        MsgBox XmlHttp.StatusText, 16, ""
    End If
End Function

Function URLEncode(strData)
    Dim i, c, ln: ln = Len(strData)
    For i = 1 To ln
        c = Asc(Mid(strData, i, 1))
        If c = 32 Then
            URLEncode = URLEncode & "+"
        ElseIf (c >= 48 And c <= 57) Or (c >= 65 And c <= 90) Or (c >= 97 And c <= 122) Or c = 61 Or c = 38 Then
            URLEncode = URLEncode & Chr(c)
        Else
            c = Hex(c): If Len(c) < 2 Then c = "0" & c
            URLEncode = URLEncode & "%" & c
        End If
    Next
End Function


Хелпаните плиззз

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.09.2006 (Пт) 15:20

а почему такая древняя версия XMLHTTP26 :?:

тебе надо MSXML2.ServerXMLHTTP40 :wink:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 97

    TopList