![]() |
|
|
#16
|
||||
|
||||
|
prestuplenie, А слабо раскрыть карты и выдать сразу данные сервера, что бы мы его "побрутфорсили" на предмет формы "нормальных" запросов?
NumLock, 7A65556736753777374F676738764475362B762F |
|
#17
|
|||
|
|||
|
На данный момент при нажатии button мне на memo показывает
<?xml version="1.0" encoding="windows-1251"?><document><result value="2">Variable input_xml is empty.</result></document> А на деле должен быть ответ примерно такое: <?xml version="1.0" encoding="windows-1251"?> <document> <info> <version>3.7</version> <api_version>1.0</api_version> <time>12:49:30</time> <execution_time>0.0551228523254</execution_time> </info> <result value="0"> <name><![CDATA[Иванов Иван Иванович]]></name> <email><![CDATA[some@some.ru]]></email> <cphone>8905123456</cphone> <awayto/> <homephone/> <workphone/> <postaddress><![CDATA[ул. Мира, 17]]></postaddress> <birthdate/> <manpost><![CDATA[Бухгалтер]]></manpost> </result> </document> |
|
#18
|
|||
|
|||
|
Цитата:
А если по точнее? |
|
#19
|
||||
|
||||
|
Попробуй так...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
sl:tstringlist;
t: string;
begin
sl:=tstringlist.create;
try
sl.add('<document>');
sl.add('<function name="employerInfo">');
sl.add('<param name="login">ivanov</param>');
sl.add('<param name="pass">f8b932c80d0b2e6bf025149a4fa68dfc</param>');
sl.add('</function>');
sl.add('<client name="SomeProgram" version="1.0"/>');
sl.add('</document>');
t:=sl.Text;
t:=StringReplace(t,#10,'',[rfReplaceAll]);
t:=StringReplace(t,#13,'',[rfReplaceAll]);
sl.Clear;
sl.Add('input_xml='+t);
Memo1.text:=idhttp1.post('http://xxx.xxx.xxx.xxx/api/functions.php',sl);
finally
sl.Free;
end;
end;Последний раз редактировалось PhoeniX, 16.02.2011 в 15:06. |
|
#20
|
|||
|
|||
|
Попробовал. Пишет
<?xml version="1.0" encoding="windows-1251"?><document><result value="2">Bad xml structure. Root element must be document</result></document> |
|
#21
|
||||
|
||||
|
Поправил код, должно работать.
|
|
#22
|
|||
|
|||
|
Цитата:
Никак ((( Что еще можно изменить? |
|
#23
|
||||
|
||||
|
Код:
var
stringstream: TStringStream;
begin
stringstream:=TStringStream.Create('');
try
stringstream.WriteString('input_xml=<?xml version="1.0" encoding="windows-1251"?>');
stringstream.WriteString('<document>');
stringstream.WriteString('<function name="employerInfo">');
stringstream.WriteString('<param name="login">ivanov</param>');
stringstream.WriteString('<param name="pass">f8b932c80d0b2e6bf025149a4fa68dfc</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;
Memo1.Text:=IdHTTP1.Post('http://xxx.xxx.xxx.xxx/api/functions.php', stringstream);
finally
stringstream.Free;
end;
end; |
|
#24
|
||||
|
||||
|
И протестируй ещё от меня вариант (попровил выше, убрал объявление XML). Может, там так должно быть...
|
|
#25
|
|||
|
|||
|
Цитата:
Пишет <?xml version="1.0" encoding="windows-1251"?> <document><info><api_version>1.0</api_version><time>18:08:03</time><execution_time>0.00739097595215</execution_time></info><result value="2"> must be integer</result></document> По моему это только половина... |
|
#26
|
|||
|
|||
|
Цитата:
А где тестовое? |
|
#27
|
||||
|
||||
|
вот тут...
Цитата:
|
|
#28
|
|||
|
|||
|
DJ PhoeniX, он выдал следующий результат
<?xml version="1.0" encoding="windows-1251"?> <document><info><api_version>1.0</api_version><time>18:15:56</time><execution_time>0.00717616081238</execution_time></info><result value="2"> must be integer</result></document> |
|
#29
|
||||
|
||||
|
мм... бред какой-то... Что-то "должно быть интежер", но ЧТО???
|
|
#30
|
|||
|
|||
|
В идеале Пример выходного XML:
<?xml version="1.0" encoding="windows-1251"?> <document> <info> <version>3.7</version> <api_version>1.0</api_version> <time>12:49:30</time> <execution_time>0.0551228523254</execution_time> </info> <result value="0"> <name><![CDATA[Иванов Иван Иванович]]></name> <email><![CDATA[some@some.ru]]></email> <cphone>8905123456</cphone> <awayto/> <homephone/> <workphone/> <postaddress><![CDATA[ул. Мира, 17]]></postaddress> <birthdate/> <manpost><![CDATA[Бухгалтер]]></manpost> </result> </document> |