Модератор: tyomitch



Private Function GetText(ByVal h As XMLHTTPRequest) As String
' Вот зараза!
Dim obptr As Long, stptr As Long, cbstr As Long
CopyMemory obptr, ByVal ObjPtr(h) + &H18, 4
CopyMemory stptr, ByVal obptr + &HA4, 4
CopyMemory cbstr, ByVal obptr + &HAC, 4
GetText = Space(cbstr)
CopyMemory ByVal GetText, ByVal stptr, cbstr
End Function




//
// single 100 response
//
#define TEST_HEADER_0   "HTTP/1.1 100 Continue\r\n" \
                        "\r\n"
//
// single 100 header
//
#define TEST_HEADER_1   "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "\r\n"
//
// continue header with moderate amount of data
//
#define TEST_HEADER_2   "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "Content-Length: 128\r\n" \
                        "Content-Type: octet/shmoctet\r\n" \
                        "\r\n" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef"
//
// continue header seen from apache server
//
#define TEST_HEADER_3   "HTTP/1.1 100 Continue\r\n" \
                        "\r\n" \
                        "\n\n\n\n\n"
//
// multiple continue headers, no data
//
#define TEST_HEADER_4   "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "\r\n" \
                        "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "\r\n" \
                        "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "\r\n" \
                        "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "\r\n"
//
// single 100 response, preceeded by preamble and containing a chunked response
//
#define TEST_HEADER_5   "!!!! this is a pre-amble, should be ignored even though it includes HTTP !!!!" \
                        "     " \
                        "HTTP/1.1 100 Go ahead punk, make my day\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "Transfer-Encoding: chunked\r\n" \
                        "\r\n" \
                        "0010 this is the first chunk (16 bytes)\r\n" \
                        "0123456789abcdef" \
                        "\r\n" \
                        "  10; this is the second chunk (16 bytes)\r\n" \
                        "0123456789abcdef" \
                        "\r\n" \
                        "00F3\r\n" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "0123456789abcdef" \
                        "012" \
                        "\r\n" \
                        "0000; the final chunk\r\n" \
                        "\r\n" \
                        "Entity-Header: this is the chunk footer\r\n" \
                        "\r\n"
//
// enpty chunk encoded response with empty footer
//
#define TEST_HEADER_6   "HTTP/1.1 100 Continue\r\n" \
                        "Server: Richard's Test-Case Virtual Server/1.0\r\n" \
                        "Date: Mon, 01 Apr 2000 00:00:01 GMT\r\n" \
                        "Transfer-Encoding: chunked\r\n" \
                        "\r\n" \
                        "0\r\n" \
                        "\r\n" \
                        "\r\n"
















    Dim XmlHttp As Object
    Set XmlHttp = CreateObject("Microsoft.XmlHttp")
    XmlHttp.open "POST", "http://www.ya.ru", False
    XmlHttp.send
    
    Dim ResponseBody() As Byte
    
    ResponseBody = XmlHttp.ResponseBody
    
    Const vbUnicode = 64
    
    Print StrConv(ResponseBody, vbUnicode)

ALX_2002 писал(а):2) А разве нельзя получать данные кусками, поставив в 206 статус ?
Извиняйте, если глупость спросил
Range: 123-456Range: 123-А разве нельзя получать данные кусками, поставив в 206 статус ?

ALX_2002 писал(а):1) Такой код не даёт мне гарантии, что я получу русский текст ?


2 tyomitch + Хакер

alibek писал(а):Хакер писал(а):2*tyomitch + Хакер.
= 11505





Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6