Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
#1

Не отправляются заголовки из-за переноса \r\n - C++

18.05.2013, 14:54. Просмотров 284. Ответов 0
Метки нет (Все метки)

Из за переноса строки \r\n заголовки не отправляются cout<<GetLastError(); дает 12150.. Если убрать переносы, то заголовок отправиться, но сервер примет все в кучу и не разберет.... мне тут POST отправить нужно.. в чем беда ?
заголовок в таком стиле нужно отправить:
POST http://www.site.ru/file.php HTTP/1.0\r\n
Host: www.site.ru\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 35\r\n
\r\n
login=Petya%20Vasechkin&password=qq
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 std::string url("file.php?name=123");
 
    std::string dataPayload("zz=content");
    DWORD dataPayloadLength = dataPayload.length();
 
    std::stringstream headerStream;
    headerStream << "POST [url]http://www.site.ru/file.php[/url] HTTP/1.0\r\n";
    headerStream << "Host: www.site.ru\r\n" ;
    headerStream << "Content-Type: application/x-www-form-urlencoded\r\n";
    headerStream << "Content-Length:";
    headerStream << dataPayloadLength<<"\r\n\r\n";
    headerStream <<dataPayload;
    std::string headers = headerStream.str();
    cout<<headers;
    
    DWORD headerLength = headers.length();
 
    HINTERNET hInternet = InternetOpen( TEXT("Mozilla/4.0"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0);
    HINTERNET hConnect = InternetConnectW(hInternet,TEXT("www.site.ru"),INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1u);
    
    wchar_t* hh2 = ctow( url.c_str(),strlen( url.c_str())); //const char* в wchar_t*
    HINTERNET handle = HttpOpenRequest(hConnect,TEXT("POST"),hh2 ,  NULL, NULL, NULL,INTERNET_FLAG_RELOAD|INTERNET_FLAG_NO_CACHE_WRITE, 0);
 
    if(!handle) 
    {
        DWORD errorCode = GetLastError();
        cout<<errorCode;
    }
    wchar_t* hh = ctow( headers.c_str(),strlen( headers.c_str())); //const char* в wchar_t*
    if(! HttpSendRequestW(handle,hh,headerLength,(LPVOID)dataPayload.c_str(), dataPayloadLength) )
    {
        cout<<GetLastError();
Добавлено через 2 минуты
[url ]http://www.site.ru/file.php[/ url] - форум добавил
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 14:54     Не отправляются заголовки из-за переноса \r\n
Посмотрите здесь:

Двоичный калькулятор с учетом переноса C++
C++ Функция переноса
C++ Необходимо распечатать все поезда, которые отправляются в заданном диапазоне времени.
C++ Visual Studio. Добавление заголовки другого проекта (ошибка компоновки)
C++ Шаблон структуры данных - массив указателей на заголовки списков
C++ shared_ptr и реализация семантики переноса
C++ Не работает конструктор переноса
C++ уравнение массы переноса
даже не знаю как опить в заголовки C++
C++ Написать заголовки для функций
C++ Массив указателей на заголовки списков
Уравнение переноса неявная схема C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru