[moved from networking] Для контроля на стороне сервера стоит распечатать, что ему при этом приходит на stdin.
Ну и полезно указать среди заголовков Content-type: application/x-www-form-urlencoded
Данные в заголовке успешно доходят до сервера. Там я их обрабатываю PHP-скриптом (параметры присутствуют в массиве, возвращаемом функцией GetAllHeaders):
[moved from networking] Для POST нужно использовать InternetConnect, HttpOpenRequest, HttpSendRequest.
Во-вторых, даже если бы тут работал POST, то с чего вдруг переменным из заголовка на стороне сервера попадать в $_POST, куда должны складываться переменные, извлеченные из тела запроса.
Насколько мне известно, данные, передаваемые методом POST...21.09.07 04:49 Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 21.09.07 04:53 Количество правок: 2
[moved from networking] Насколько мне известно, данные, передаваемые методом POST для сервера «пустой звук» (он их никак не интерпретирует – так говорит Д. Котеров «Самоучитель PHP» стр.35), поэтому PHP, получив заголовок, должен его разобрать и сформировать переменную $_POST. Чтобы это сделать, интерпретатор читает длину заголовка из переменной “Content-Length”.
[moved from networking] Заголовки, разделенные переводом строки, сами по себе, запрос сам по себе. Идет он сразу после заголовков, отделенным еще одним переводом строки. В Content-Length лежит длина запроса (и его надо формировать самостоятельно). Отдельные параметры запроса разделяются не переводом строки, а &, каждый параметр - как имя=значение.
т.е. передавать надо что-то типа
"Content-Length=30\n\nl=VedaCoder@mail.ru&p=123456"
Нелатиницу при этом лучше превращать в вид %XX.
В MSDN сказано, что HttpSendRequest вторым параметром...21.09.07 05:42 Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 21.09.07 06:30 Количество правок: 3
[moved from networking] В MSDN сказано, что HttpSendRequest вторым параметром принимает header, а третьим его размер. Если этот размер выставить в -1, то он будет рассчитан автоматически.
Когда я добавляют строку “Content-Length” в начало своего заголовка (“Content-Length:29\n\nl:VedaCoder@mail.ru&p:123456”) функция HttpSendRequest виснет (выхода из неё в отладчике я так и не дождался).
Пардон, в HttpSendRequest я не туда свои данные передал. Их нужно в 4 и 5 параметр. Но это не помогло. Content-Length теперь не нулевая, но в _POST данных по прежнему нету:
[moved from networking] Для контроля на стороне сервера стоит распечатать, что ему при этом приходит на stdin.
Ну и полезно указать среди заголовков Content-type: application/x-www-form-urlencoded
dl, спасибо. Проблема была в том, что не указывал...21.09.07 13:46 Автор: Vedrus <Serokhvostov Anton> Статус: Member
[moved from networking] Размер и тип передаваемых данных, остальное опционально - referer, user-agent, authorization, куки и т.п.
Разве что в зависимости от хостинга может потребоваться указание заголовка Host, чтобы взаимодействовать с одним из виртуальных серверов, лежащих на одном IP (хотя есть шанс ,что WinINet и его может формировать самостоятельно).
Большое спасибо. Тема закрыта21.09.07 15:52 Автор: Vedrus <Serokhvostov Anton> Статус: Member