| 
| 
 | Вопрос # 4 901/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты! как правильно сформировать запрос на сайт с php скриптом с помощью idHTTP. С этого сайта нужно получить результаты поиска - вот кусок из страницы
 <div class="search">
 <p align="center"><select name="tip" size="1">
 <option selected value="all">Везде</option><option value="artist">Исполнитель</option>
 <option value="track">Песня</option>
 </select> <input type="text" name="query_search" maxlength="60" size="36">
 <input type="submit" name="sub" value="Найти!"></p></div>
 
 так я пытаюсь:
 
 procedure TForm1.btn1Click(Sender: TObject);
 var
 data: TIdMultiPartFormDataStream;
 begin
 data := TIdMultiPartFormDataStream.Create;
 try
 // добавляем нужные параметры
 data.AddFormField('tip', 'all');
 data.AddFormField('query_search', 'ария');
 lst1.Items.Text := IdHTP1.Post('http://best-mp3.ru/search.php', data);
 finally
 data.Free;
 end;
 end;
 
|  |   Вопрос задал: eclipse (статус: Посетитель)Вопрос отправлен: 9 января 2011, 20:03
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 1 июля 2011, 13:49; участников в обсуждении: 3. 
|   | Ерёмин А.А. (статус: *Администратор), 9 января 2011, 21:03 [#1]:Похоже на правду. Что не получается-то? 
 С ходу могу только посоветовать добавить кнопку (sub) в data, от неё многое может зависеть.
 |  
|   | eclipse (статус: Посетитель), 9 января 2011, 21:23 [#2]:попробовал добавить data.AddFormField('sub', 'Найти!'); нихрена!
 |  
|   | Вадим К (статус: Академик), 10 января 2011, 00:42 [#3]:Логично что не будет работать. Русские буквы прям так нельзя передавать, если сервер их не готов принимать. Их нужно во первых передать в правильной кодировке, а во вторых - закодированными. Хотя второе обычно решается выставлением нужных свойств у idHttp. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | eclipse (статус: Посетитель), 1 июля 2011, 13:49 [#4]:Ошибка была в этом - data.AddFormField('tip', 'all'); 
 Нужно было добавлять так - data.AddFormField('tip all');
 
 И так далее в том же духе, просто через пробел.
 |  1 июля 2011, 13:49: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |