Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Тупость idhttp.post (HTTP/1.1 403 Forbidden )


Автор: bakanaev 27.3.2012, 21:25
Здравствуйте. Возникла проблем. Делаю 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';

В ответ получаю "HTTP/1.1 403 Forbidden", НО!!!!
Ответ на мой post запрос (Смотрел в снифере)

Код

    HTTP/1.1 403 Forbidden
    Date: Tue, 27 Mar 2012 01:52:21 GMT
    Server: Apache
    Cache-Control: private
    Set-Cookie: JServSessionIdr004=q1j2d0y1m4.app214a; path=/site/
    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>
     
    0


+Браузер получает 100% идентичный ответ (смотрел в снифере)

При вылете этого сообщения работа программы останавливается, естественно ни какого парсинга переменной page не происходит.
Прошу помощи в решении данной проблемы.
P.S В практическом программирование всего 4 дня)) Так что если будите что то описать, прошу делать это как можно подробнее )))
P.P.S Есть у кого нибудь кряк для Embarcadero® RAD Studio XE2 Version 16.0.4429.46931 ?? 

Автор: bakanaev 28.3.2012, 09:37
Ребята ну подскажите хоть что нибудь, как убрать эту ошибку? (Сделать что бы она не вылетала) И ответ записывался в переменную page. Може есть другие пути ?

Автор: bakanaev 28.3.2012, 22:48
Я уже очень близко !!!!!
Код
Возвращенные заголовки (после ответа сервера) можно посмотреть так:

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>


Как мне использовать idHttp.Response. что бы получить весь ответ ???? Дайте почитать что нибудь про idHttp.Response

Автор: MetalFan 29.3.2012, 11:16
TIdHTTP.Response.ResponseText ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)