Shurick V Гость
|
Добавлено: Чт Дек 06 2001 21:53 Заголовок сообщения: Пишу как сделать на C++ Builder с использованием компонент со страницы FastNet |
|
|
Сначала сохрани данные во временный файл с теми параметрами, с какими надо. Например, userid=param1&email=param2&message=param3... Короче.. как ты обычно формируешь Get... Только надо помнить о том, что все параметры должны быть в "URL-формате". то есть все пробелы меняются на +, символы, не лежащие в диапазоне A-Z, a-z, 0-9, - кодируются как % Для этой цели, на мой взгляд, _проще_ всего взять компонент TNMURL с той же страницы. То есть получается что-то вроде: NMURL1-InputString=ADOTable1-FieldByName("userid")-AsString; .. нас сформирована строка данных, которые надо постить, берем и сохраняем ее в файл. TFileStream* f=new TFileStream("temp.txt",fmCreate); f-Write(TempString.c_str(),TempStri.. f;//освободим указатель //потом постим. NMHTTP1-Port=80; NMHTTP1-OutputFileMode=true;//Вот это важно. NMHTTP1-Post("www.myhost.ru/cgi-bin/myscript.pl?","temp.txt");.. и файл нам этот не нужен уже
Значится, если не сохранять содержимое в файл, (то есть пытаться постить прямо открытой строкой) NMHTTP1-Post("www.myhost.ru/cgi-bin/myscript.pl?",TempString); то строка закодируется автоматически... Вся. Вместе со знаками = и &. То есть скрипт ее не сумеет разобрать на составляющие. |
|