Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неверное передаются html-теги в idHttp.Post 
:(
    Опции темы
M1ndAction
Дата 23.11.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 19.1.2008

Репутация: нет
Всего: нет



Добрый день,
ситуация следующая: нужно добавить новость на сайт (заливать песню с обложкой (сам файл загружается на сторонний файлообменник, а в новость добавляется только плеер с соотв. ссылкой), кнопкой скачивания и др.), который на базе Ucoz, причем добавить ее с bb-кодами (добавляю под админ. учетной записью). но новость добавляется как-то странно. Для начала, пользуюсь idHttp.Post, код следующий:

Код

  params.Clear;
  params.Add('_wi=1');
  params.Add('a=2');
  params.Add('cat=0');
  params.Add('coms_allowed=1');
  params.Add('edttmessage=2');
  params.Add('format_message=1');
  params.Add('html_message=1');
  params.Add('jkd428=1');
  params.Add('jkd498=1');
  params.Add('file1=');
  params.Add('tags=');
  params.Add('title='+Songs[CurSong].Name);
  params.Add('user=');
  //определение ssid
  res := fmMain.idNews.Get(site+'/news/0-0-0-0-1');
    //вручную сохраняю Cookies, т.к. самостоятельно он не сохраняет из-за домена вида .domain (распр. проблема, все дело в точке)
    slCookies.Clear;
    s := fmMain.idNews.Response.RawHeaders.CommaText;
    k := Pos('Set-Cookie:', s);
    while k<>0 do
    begin
      k := k + 12;
      temps := '';
      while s[k]<>'"' do
      begin
        temps := temps + s[k];
        inc(k);
      end;
      slCookies.Add(temps);
      s := Copy(s, k, Length(s)-k+1);
      k := Pos('Set-Cookie:', s);
    end;
    for i := 0 to slCookies.Count - 1 do
    begin
      ipos := Pos('; domain=',slCookies.Strings[i]);
      if ipos<>0 then
      begin
        ipos := ipos+9;
        temps := slCookies.Strings[i];
        Delete(temps, ipos, 1);
        slCookies.Strings[i] := temps;
      end;
    end;

  ///end...
  for i := 0 to slCookies.Count - 1 do
    fmMain.IdCookieManager1.AddCookie(slCookies.Strings[i], shost);

  ipos := Pos('name="ssid" value="', res);
  ipos := ipos+19;
  ssidparam := '';
  while res[ipos]<>'"' do
  begin
    ssidparam := ssidparam + res[ipos];
    inc(ipos);
  end;
  params.Add('ssid='+ssidparam);
  songtemplate := CreateMp3Message(CurSong);
  params.Add('message='+songtemplate);

  fmMain.idNews.Request.Referer := site+'/news/0-0-0-0-1';
  res := fmMain.idNews.Post(site+'/news/', params);

Вообще, возможны три варианта добавления новостей: bb-коды, html-коды и некий промежуточный вариант. Как я понял, ключевым параметром является edttmessage, т.е. добавляя новости различными методами, меняется именно этот параметр (плюс появляются некоторые другие в случае html). Мне нужно добавлять именно с поддержкой bb-кодов, но вся проблема сводится к тому, что теги как-то обрезаются, допустим, я пытаюсь добавить строку '<BR><img src="http://lprussia.com/news/letdown_video.jpg" align="" border="0px" width="180"><br>', т.е. просто картинка, но при этом в итоге в новости можно увидеть только 
<br/>
<img src=""/>
куда девается остальная часть тега - непонятно. С другой стороны, если добавлять просто текст, при этом форматированный (с тегом <b></b>), то все ok, добавляется корректно, а что-то другое никак. Я смотрел, что отправляется через Http Analizer, так вроде строка полностью отправляется. На текущий момент запрос выглядит  следующим образом:

Код

(Request-Line):POST /news/ HTTP/1.1
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Content-Length:315
Host:softwareznik.ucoz.com
Accept:application/xml, text/xml, */*
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7
Accept-Encoding:identity
Referer:http://softwareznik.ucoz.com/news/0-0-0-0-1
User-Agent:Mozilla/3.0 (compatible; Indy Library)
Cookie:dsoftwareznikuzll=1258965943; path=/; dsoftwareznikuCoz=uz%3D943d0c19feb01fa2993c98534475fc8f41dacc194f227c6e12beee6c04c3365333a7af08f69282c4cf5bf790ca75725aeec225cff023735fb8841f8a9bef7a5a90caa8fa46439de8dad2cbb86cd85920d2e2e6347ae9a4393118c44567d6a721e6%2Cses%3D61384c436b6e4c786255657659a5ee; dsoftwareznikuispm=0-0



И, что интересно, заметил еще такую особенность, когда смотрю раздел Post Data в Http Analizer, то формат данных меняется, например, последний запрос, который я сейчас делал, выглядит следующим образом:
?<br><b>Time: </b>0:39 ???<br><b>Bitrate: </b>97 ????/?<br>?????????????<br>         

т.е. эта строка отображается в имени параметра, а значение параметра пустое. До этого было, что все параметры отображались одной строкой через символ & (при этом картинка здесь же была изображена), затем как я поменял значение Content-Type (если не ошибаюсь, т.к. экспериментировал уже много), то Post Data стали отображаться нормально (как, например, в Firebug в Firefox), т.е. столбик Parameter Name, где перечислены все параметры, и столбик Value, где все значения. Может это все глюки Http Analizer, а может он показывает, что данные некорректно передаются/считываются.

В общем ситуация такая, главный вопрос, почему теги некорректно загружаются, почему обрезаются? 
Спасибо за внимание, надеюсь на помощь. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.