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

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

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

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

18.05.2013, 14:54. Просмотров 300. Ответов 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] - форум добавил
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 14:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не отправляются заголовки из-за переноса \r\n (C++):

Преждевременно отправляются заголовки - PHP
Проблема в том, что при попадании на несуществующую страницу контроллер вызывает метод, который отправляет заголовки со статусом 404. Но...

HTTP заголовки. Как увидеть реальные принятые заголовки ? - PHP
файл php содержит readfile(блабла) больше ни чего! Если смотреть заголовки через Файрфорк или сервисы-сайты, то показывает...

Не отправляются файлы - Софт
Не отправляются файлы с ICQ 6.5 на QIP Infium. Выдаёт что то типа такого &quot;Узел* 'SMTP' не найден. Проверьте введенное имя сервера. Учетная...

Не отправляются письма - 1С Битрикс
Доброго времени суток. Проблема заключается в том, что Битрикс не отправляет письма через CEvent::Send(...). PHP через mail(...) и...

Не отправляются сообщения - Android
Добрый вечер, у меня планшет Ampe A10, были установлены приложения вконтакте и одноклассники, все работало нормально, но потом у меня стала...

Не отправляются AT-команды - Linux
Пишу AT-команды, но они не отправляются, во всяком случае нет никаких выводов. Например ввожу в терминале: echo &quot;ATi^M&quot; &gt; /dev/ttyUSB0...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2013, 14:54
Привет! Вот еще темы с ответами:

Не отправляются данные - jQuery
Доброго времени суток, уважаемые эксперты! Только начинаю открывать для себя Java в лице JQuery, однако уже столкнулся с проблемами. ...

AS 3.0 Не отправляются данные - ActionScript
Здравствуйте! Пытаюсь сделать файл который отправлял бы текстовую строку методом POST, но столкнулся с некоторыми проблемами. import...

Не отправляются данные в COM порт - C++ Linux
на линуксе в си пытался записать в ком порт кодом /* * 'open_port()' - Open serial port 1. * * Returns the file descriptor...

Данные не отправляются в $_POST - PHP
Помогите, пожалуйста. Данные перестали отправляться в массив $_POST. Что делать?


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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