![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. Возникла проблем. Делаю post запрос (IdHttp1.post)
Код:
page := IdHttp1.post('https://secure.site.org/site/API',data);
if pos('!!!!!!!!!!!!!Тут то что мне надо!!!!!!!!!!!!!!!!',page )<>0 then
begin
Label1.Caption:='БЛА1';
end
else
Label1.Caption:='БЛА2';Ответ на мой post запрос (Смотрел в снифере) Код HTML:
+Браузер получает 100% идентичный ответ (смотрел в снифере) При вылете этого сообщения работа программы останавливается, естественно ни какого парсинга переменной page не происходит. Прошу помощи в решении данной проблемы. P.S В практическом программирование всего 4 дня)) Так что если будите что то описать, прошу делать это как можно подробнее ))) P.P.S Есть у кого нибудь кряк для Embarcadero® RAD Studio XE2 Version 16.0.4429.46931 ?? |
|
#2
|
|||
|
|||
|
Может из за того что ты делаешь запрос на защищенный сайт https, а idhttp с ним не работает, поробуй
подключить к нему TIdSSLIOHandlerSocketOpenSSL |
|
#3
|
|||
|
|||
|
Цитата:
![]() |
|
#4
|
|||
|
|||
|
тогда заключи код в блок try-except или отключи в свойствах проекта debuging--исключения не будут выводиться
|
|
#5
|
|||
|
|||
|
Я уже очень близко !!!!!
Код:
Возвращенные заголовки (после ответа сервера) можно посмотреть так: idHttp.Response.RawHeaders.GetText; Код:
try
page := IdHttp1.post('https://secure.site.org/site/API',data);
Except
on Exception do Memo1.Lines.Text:= idHttp1.Response.RawHeaders.GetText ;
end;
Код:
Date: Wed, 28 Mar 2012 19:35:03 GMT Server: Apache Cache-Control: private Transfer-Encoding: chunked Content-Type: text/xml; charset=UTF-8 Но этого не достаточно,нужно остльное остальное Код:
TTP/1.1 403 Forbidden
Date: Wed, 28 Mar 2012 19:35:03 GMT
Server: Apache
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/xml; charset=UTF-8
236
<?xml version="1.0" encoding="UTF-8"?>
<Response xsi:schemaLocation="http://site.com/crm/v1.0 http://service.site.net/xmlschema/crm.public.v1.xsd" xmlns="http://convio.com/crm/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<errors>
<code>101</code>
<message>!!!!!!!!!!!!!Тут то что мне надо!!!!!!!!!!!!!!!(Обычный текст)</message>
<reason>FIELD_VALIDATION</reason>
<pageError>!!!!!!!!!!!!!Тут то что мне надо!!!!!!!!!!!!!!!(Обычный текст)</pageError>
<fieldError>!!!!!!!!!!!!!Тут то что мне надо!!!!!!!!!!!!!!!(Обычный текст)</fieldError>
</errors>
</Response>
|
|
#6
|
||||
|
||||
|
попробуй в Post передать еще AResponseContent: TStream и из него читать ответ. что-то типа:
Код:
var
AStrings: TStrings;
AStringStream: TStringStream;
begin
AStrings:=TStringList.Create;
AStringStream:=TStringStream.Create('');
...
try
IdHTTP1.Post('...', AStrings, AStringStream);
finally
ShowMessage(AStringStream.DataString);
end;
end; |