Re: Эммуляция отправки форм методом POST
От: Vamp Россия  
Дата: 08.04.03 12:17
Оценка: 9 (2)

Здравствуйте, F1, Вы писали:


F1>
F1>CString frmdata = "Nick=HJDGKJGFKJFDKJFKJ";
F1>TCHAR *acc = _T("Accept: */*");
F1>HINTERNET hSession = InternetOpen("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
F1>    if(!hSession)
F1>    return;
F1>HINTERNET hConnect = InternetConnect(hSession, _T("http://127.0.0.1/test/index.html"),
F1>INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
F1>    if(!hConnect)
F1>    return;
F1>HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", _T("tst.pl"), NULL, NULL, &acc, 0, 1);
F1>    if(!hRequest)
F1>        return;
F1>    BOOL res = HttpSendRequest(hRequest, hdrs, strlen(hdrs), &frmdata, frmdata.GetLength());
    
F1>    char     Buffer[500];
F1>    DWORD    sz = 500;
F1>    DWORD    bytesRead ;

F1>    BOOL readFile = InternetReadFile(hRequest, Buffer, sz, &bytesRead);
F1>

Где накасячил?

А много где

1.

HINTERNET hConnect = InternetConnect(hSession, _T("http://127.0.0.1/test/index.html"), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);


Адрес сервера должен быть просто 127.0.0.1, без http и путей.

2.

HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", _T("tst.pl"), NULL, NULL, &acc, 0, 1);



Путь к скрипту правильный? /cgi-bin/ не забыт?

3.

HttpSendRequest(hRequest, hdrs, strlen(hdrs), &frmdata, frmdata.GetLength());


а) Что это за hdrs и strlen(hdrs)? В коде их нет, чему они равны?
б) &frmdata возвращает адрес объекта CString, а вовсе даже не указатель на строку с ником. Воспользуйся CString::GetBuffer.

Удачи.
Да здравствует мыло душистое и веревка пушистая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.