Текущий архив: 2011.07.03;
Скачать: CL | DM;
Внизxml не отображает кириллицу Найти похожие ветки
← →
smart (2011-03-14 13:04) [40]Вот:
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");
try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
stringstream.WriteString("<document>");
stringstream.WriteString("<function name="catalogCreate">");
stringstream.WriteString("<param name="login">logg</param>");
stringstream.WriteString("<param name="pass">password</param>");
stringstream.WriteString("<param name="idEmployer">1</param>");
stringstream.WriteString("</function>");
stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
stringstream.WriteString("</document>");
IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
IdHTTP1.Request.ContentLength:=stringstream.Size;
stringstream.Position:=0;
stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
Form1.IdHTTP1.Disconnect;
Form1.XMLDocument1.LoadFromStream(stringstream2);
Form1.XMLDocument1.Active:=true;
Form1.XMLDocument1.SaveToFile("c:\expl.xml");
finally
stringstream.Free;
end;
← →
smart (2011-03-14 13:05) [41]С поправкой:
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");
try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
stringstream.WriteString("<document>");
stringstream.WriteString("<function name="catalogCreate">");
stringstream.WriteString("<param name="login">logg</param>");
stringstream.WriteString("<param name="pass">password</param>");
stringstream.WriteString("<param name="idEmployer">1</param>");
stringstream.WriteString("<param name="name"><![CDATA[Новый справочик]]></param>");
stringstream.WriteString("</function>");
stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
stringstream.WriteString("</document>");
IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
IdHTTP1.Request.ContentLength:=stringstream.Size;
stringstream.Position:=0;
stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
Form1.IdHTTP1.Disconnect;
Form1.XMLDocument1.LoadFromStream(stringstream2);
Form1.XMLDocument1.Active:=true;
Form1.XMLDocument1.SaveToFile("c:\expl.xml");
finally
stringstream.Free;
end;
← →
Медвежонок Пятачок © (2011-03-14 13:15) [42]Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream);
ShowMessage(stringstream.string);
Вот твои крякозябры.
И как видишь, никакой xml здесь не использовался, и не мешал русскому наименованию папки.
← →
Медвежонок ХМЛ © (2011-03-14 13:17) [43]Точнее даже так
ShowMessage(Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.php", stringstream));
← →
smart (2011-03-14 13:25) [44]Ошибка. в названиях каталога те же иероглифы...
← →
Медвежонок ХМЛ © (2011-03-14 13:26) [45]Все, я пас......
Медицина бессильна
← →
Плохиш © (2011-03-14 13:52) [46]
> smart (14.03.11 13:04) [40]
Какое отношение всё это <...> имеет к xml и созданию каталогов?
← →
smart (2011-03-14 13:55) [47]С помощью этого кода создается каталог.
<function name="catalogCreate">
- Создать новый каталог
← →
Плохиш © (2011-03-14 14:02) [48]Пора нанимать программиста.
← →
brother © (2011-03-15 06:07) [49]smart
ты понял к чему тебе предлагают нанять программиста?
← →
smart (2011-03-15 08:56) [50]
> Form1.IdHTTP1.Post("http://888.888.888.888/api/functions.
> php", stringstream);
> ShowMessage(stringstream.string);
>
> Вот твои крякозябры.
>
> И как видишь, никакой xml здесь не использовался, и не мешал
> русскому наименованию папки.
Проблемы у меня IdHTTP1.Post-кодировкой. Вместо Utf нужно использовать windows-1251, проблема кажется в этом. Как с этим разобраться?
← →
sniknik © (2011-03-15 09:26) [51]> Вместо Utf нужно использовать windows-1251
это тебя "осенило", или наконец то прочел ответы в ветке?
на самом деле windows-1251 единственное где нужно это в виндовой функции создания каталога (если не юникодная), а в Post, xml, ... вполне пойдет любая.
лирика.
> Как с этим разобраться?
учиться учится и еще раз учиться! (как расписывал ручку тов.Ленин)
p.s. все больше и больше смахивает на попытку "развода" (ну не бывает настолько ....).
← →
smart (2011-03-15 09:56) [52]И времени и желания нет и не было "на развод". Просто нужна помощь (((
← →
RWolf © (2011-03-15 11:06) [53]
> Как с этим разобраться?
отладчиком.
пошаговым выполнением алгоритма, с просмотром всех переменных.
← →
smart (2011-03-15 11:14) [54]Отладчиком пользовался, все просмотрел. В программе все нормально, кроме кодировки.
Я думаю что проблема в этой строке, но где именно пока непонятно...
> stringstream2.WriteString(Form1.IdHTTP1.Post("http://888.
> 888.888.888/api/functions.php", stringstream));
← →
Dennis I. Komarov © (2011-03-15 11:30) [55]
> Я думаю что проблема в этой строке
Да нет, проблема совсем в другом месте...
← →
smart (2011-03-15 11:33) [56]
> Да нет, проблема совсем в другом месте...
>
Где же?
← →
brother © (2011-03-15 11:38) [57]у тебя в коде вестимо
← →
Медвежонок Пятачок © (2011-03-15 11:45) [58]в [41] ошибок нет, хотя код и еретический.
ошибка дальше, в неприведенном здесь коде.
← →
DiamondShark © (2011-03-15 11:45) [59]
> smart (15.03.11 11:33) [56]
> > Да нет, проблема совсем в другом месте...> Где же?
В реализации http://888.888.888.888/api/functions.php
← →
Dennis I. Komarov © (2011-03-15 11:47) [60]
> brother © (15.03.11 11:38) [57]
вообще, я не это имел ввиду...
← →
Медвежонок ХМЛ © (2011-03-15 11:53) [61]с полученным из пхп ответом надо работать как с xml, а не юзать стрингстрим вырезая имя каталога позами и копями.
Вот и вся недолга.
← →
smart (2011-03-15 12:11) [62]
> ошибка дальше, в неприведенном здесь коде.
Вот листинг:function TForm1.catalogCreate(Login: string;Password1: string): string;
var
stringstream: TStringStream;
stringstream2: TStringStream;
begin
stringstream:=TStringStream.Create("");
stringstream2:=TStringStream.Create("");
try
stringstream.WriteString("input_xml=<?xml version="1.0" encoding="windows-1251"?>");
stringstream.WriteString("<document>");
stringstream.WriteString("<function name="catalogCreate">");
stringstream.WriteString("<param name="login">logg</param>");
stringstream.WriteString("<param name="pass">password</param>");
stringstream.WriteString("<param name="idEmployer">1</param>");
stringstream.WriteString("<param name="name">Новый справочик></param>");
stringstream.WriteString("</function>");
stringstream.WriteString("<client name="SomeProgram" version="1.0"/>");
stringstream.WriteString("</document>");
IdHTTP1.Request.ContentType:="application/x-www-form-urlencoded";
IdHTTP1.Request.ContentLength:=stringstream.Size;
stringstream.Position:=0;
ShowMessage(Form1.IdHTTP1.Post("http://"888.888.888"/api/functions.php", stringstream));
Form1.IdHTTP1.Disconnect;
Form1.XMLDocument1.LoadFromStream(stringstream2);
Form1.XMLDocument1.Active:=true;
Form1.XMLDocument1.SaveToFile("c:\expl.xml");
finally
stringstream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
t: String;
begin
t:= MD5DigestToStr(MD5String(Password.Text));
IdEmpl1.Text:= catalogCreate(Login.Text,t);
end;
Попробовал так, но результата пока нет...
← →
Медвежонок Пятачок © (2011-03-15 12:19) [63]ты запарил уже своей непробиваемостью.
вот пришел к тебе ответ и ты его сохранил.
и в нем имя папки.
Form1.XMLDocument1.SaveToFile("c:\expl.xml");
где ты его читаешь?
имя для создаваемой папки где и как читаешь?
← →
smart (2011-03-15 12:31) [64]Новый каталог создается в другой - параллельной программе. Там и весь список папок. Только в название нового каталога сейчас там Новый справочник
← →
brother © (2011-03-15 12:34) [65]ты точно - НЕ ПРОБИВАЕМЫЙ!!!!
← →
brother © (2011-03-15 12:36) [66]> вот пришел к тебе ответ и ты его сохранил.
и скорее всего уже битый...
← →
Медвежонок ХМЛ © (2011-03-15 12:37) [67]Новый каталог создается в другой - параллельной программе.
Тогда спи спокойно.
У тебя ошибок нету.
← →
brother © (2011-03-15 12:40) [68]> Form1.XMLDocument1.LoadFromStream(stringstream2);
> Form1.XMLDocument1.Active:=true;
> Form1.XMLDocument1.SaveToFile("c:\expl.xml");
где его заполнение/чтение?
← →
Медвежонок ХМЛ © (2011-03-15 12:48) [69]это делается в третьей перпендикулярной программе.
разве не понятно?
← →
brother © (2011-03-15 12:49) [70]гыгы, я догадывался)
← →
Плохиш © (2011-03-15 12:52) [71]Судя по тому, что это блондинко засовывает в TStringStream, в /api/functions.php реализован обычный веб-сервис. Так почему бы не создать нормального клиента с помощью встроенного в делфи мастера?
PS. Долго ещё оно будет бодаться, используя комбинируя компоненты поддерживающие юникод и не поддерживающие :-))
← →
Dennis I. Komarov © (2011-03-15 12:56) [72]Да пусть бодается, если brain.sys встал криво...
← →
sniknik © (2011-03-15 13:18) [73]> с полученным из пхп ответом надо работать как с xml
х.м. ... у меня бывает от пхп рекордсеты(/json) приходят, или бинарные данные (например иконки/логотип компании), по протоколу/договоренности... (и кстати .php в конце может и не быть признаком обработчик пхп. как "ту сторону" реализуют я часто не знаю, а вот общие части протокола, со вполне определенными ссылками/функциями для всех одинаковы... эээ... в определенных пределах. стремимся к этому, это точно)
я к тому, уточнение, что "работать как с xml" надо только если пришел xml, что в данном случае не очевидно (и вряд ли будет с его "подходом").
← →
smart (2011-03-15 13:26) [74]
> "работать как с xml" надо только если пришел xml, что в
> данном случае не очевидно
Собственно xml:<?xml version="1.0" encoding="windows-1251" ?>
- <document>
- <info>
<api_version>1.0</api_version>
<time>10:11:15</time>
<execution_time>0.24351406097412</execution_time>
</info>
- <result value="0">
<id>120</id>
<message>120</message>
</result>
</document>
← →
Anatoly Podgoretsky © (2011-03-15 13:28) [75]> brother (15.03.2011 12:36:06) [66]
Не битый, а избитый, но не до конца.
← →
app © (2011-03-15 13:30) [76]Надоело, потрепаться можно и в Прочем
← →
Медвежонок Пятачок © (2011-03-15 13:31) [77]Мужик, тебе же сказали, покойся с миром, у тебя нет ошибок.
Их допустил программист второй, параллельной программы.
А ты иди в кассу за премией.
← →
sniknik © (2011-03-15 14:08) [78]> Собственно xml:
все таки xml... а чего же тогда xml в xml как есть с заголовком вкладывается? оно что должно телепатически правильно "сложить" document-ы?
← →
Медвежонок Пятачок © (2011-03-15 14:18) [79]и главное где же в нем хоть намек на имя каталога?
← →
Conflict © (2011-03-15 14:35) [80]оффтоп
А на самом деле в заголовок попадает кракозябла из [5] вот какая, а не Новый справочник:
Р’РёРґ ПоступленияCP1251 → UTF-8
Вид Поступления
/оффтоп
Страницы: 1 2 3 вся ветка
Текущий архив: 2011.07.03;
Скачать: CL | DM;
Память: 0.61 MB
Время: 0.006 c