HttpOpenRequest
От: alnits  
Дата: 03.11.08 14:50
Оценка:
Здравствуйте!
Есть вот такой код:

HINTERNET hOpenHandle = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);  
    if(hOpenHandle){
        HINTERNET hConnectHandle = InternetConnect(hOpenHandle, "195.***.***.***", 
            83, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);  
        if(hConnectHandle){
        //HttpSendRequest(hResourceHandle_auth, hdrs, strlen(hdrs), pBuf, );
                HANDLE hResourceHandle = HttpOpenRequest(hConnectHandle, "POST", "/index.php", NULL, NULL, (LPCSTR*)accept, 0, 1);

            if(hResourceHandle){
                    
                    
                     HttpSendRequest(hResourceHandle, authHdrs, strlen(authHdrs), pAuthBuff, dwpAuthBuff);
//                     InternetCloseHandle(hResourceHandle);
    //                hResourceHandle = HttpOpenRequest(hConnectHandle, "POST", "/index.php?mode=1", NULL, NULL, (LPCSTR*)accept, 0, 1);
                    hResourceHandle = HttpOpenRequest(hConnectHandle, "POST", "/index.php?mode=1", NULL, NULL, (LPCSTR*)accept, 0, 1);
                    HttpSendRequest(hResourceHandle, hdrs, strlen(hdrs), pBuf, dwDataToSend);
        

                
            }
            InternetCloseHandle(hResourceHandle);  
             
        }
        InternetCloseHandle(hConnectHandle);  
    }
    InternetCloseHandle(hOpenHandle);

Авторизация проходит успешно (HttpSendRequest(hResourceHandle, authHdrs, strlen(authHdrs), pAuthBuff, dwpAuthBuff), плюшки приходят нормальные.... далее, следующим SendRequest пытаюсь залить файл который лежит в dwDataToSend. Смотрю в сниффере пакетов. Сперва вывод если я проделываю тоже самое через Оперу:
POST /index.php HTTP/1.1
User-Agent: Opera/9.52 (Windows NT 5.1; U; ru)
Host: 195.***ю***ю***:83
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Expect: 100-continue
Referer: http://195.***ю***ю***:83/index.php?mode=1
Cookie: PHPSESSID=6fecacdfd3aa748d35e85f66f5bc34ac
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 49345
Content-Type: multipart/form-data; boundary=----------i6xSQ7sZGiJAVSMAefg5fn

------------i6xSQ7sZGiJAVSMAefg5fn
Content-Disposition: form-data; name="cfgupload"

upload
------------i6xSQ7sZGiJAVSMAefg5fn
Content-Disposition: form-data; name="file"; filename="breader-server-config.xml"
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
... текст хмл=ки....

а вот если я прогой пытаюсь:

POST /index.php?mode=1 HTTP/1.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
User-Agent: Opera/9.52 (Windows NT 5.1; U; ru)
Expect: 100-continue
Host: 195.***ю***ю***:83
TE: deflate, gzip, chunked, identity, trailers
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Length: 49364
Cache-Control: no-cache
Cookie: PHPSESSID=6ff8797418ec1af5fd2b2e82d4b89ca2

Content-type: multipart/form-data; boundary=--Jfbvjwj3489078yuyetu
--Jfbvjwj3489078yuyetu
Content-Disposition: form-data; name="cfgupload"

upload



--Jfbvjwj3489078yuyetu
Content-Disposition: form-data; name="file"; filename="breader-server-config.xml"
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<!-- Config version
....текст хмл-ки...



причём в запросе из оперы там — 00:00:22.890 Opera.exe[2268] (Count=174, Sent=253,62 K, Received=921,87 K, ElapsedTime=2181,719 s)
171 False +34:8.875 s 1,125 s POST 302 542 text/html http://195.***ю***ю***:83/index.php /index.php?mode=1

а у мну:

— 00:35:42.250 SendXMLTest.exe[1140] (Count=2, Sent=50,37 K, Received=2,05 K, ElapsedTime=3,266 s)
176 False +2.640 s 0,625 s POST 200 1,02 K text/html http://195.***ю***ю***:83/index.php?mode=1

тоесть через оперу идёт 302, а у мну 200. Авторизаци точно получается делать, смотрел подробный ответ сервера. Помогите!!! уже 3 дня парюсь



05.11.08 13:41: Перенесено модератором из 'C/C++' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.