Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 18.10.2012, 12:02   #1
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
Сообщение Ответ от сервера IdHTTP

Народ прошу вашей помощи.

Значит посылаю get запрос к серверу, он отправляет мне ошибку 409 или 403
По-разному

Я получаю ответ в виде xml, как мне его прочитать ?

HTTP.Response.GetText не даёт мне xml, он даёт мне только инфу о сервере и т д

RawHeaders.GetText - тоже самое
RawHeaders.CommaText - тоже самое

Как мне получить XMl, снифером его видно, также длина Content Lenght через программу совпадает со снифером, значит ответ где-то лежит, как его взять

Вот это видит сниффер:
HTTP/1.1 409 Conflict
Content-Type: text/xml; charset=utf-8
Server: Jetty(6.1.x)
Content-Length: 160
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><error code="551" appid="122"><failure cause="FAILED" field="password" value="******"/></error>

Вот это я могу получить:
HTTP/1.1 409 Conflict
Content-Type: text/xml; charset=utf-8
Server: Jetty(6.1.x)
Content-Length: 160
Connection: keep-alive

Вот это мне нужно получить:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><error code="551" appid="122"><failure cause="FAILED" field="password" value="******"/></error>

Последний раз редактировалось WhiteForge; 18.10.2012 в 12:28.
WhiteForge вне форума   Ответить с цитированием
Старый 18.10.2012, 12:45   #2
Delphi_ProGer
Участник клуба
 
Регистрация: 30.10.2010
Адрес: Україна
Сообщений: 524
Репутация: 95
По умолчанию

А что дает вот такое?
Код:

showmessage(idhttp1.get('ваш сайт'));

Delphi_ProGer вне форума   Ответить с цитированием
Старый 18.10.2012, 13:03   #3
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
По умолчанию

Ничего, сообщение не появляется
WhiteForge вне форума   Ответить с цитированием
Старый 18.10.2012, 13:51   #4
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
По умолчанию

Можно как-нибудь обрезать эти ошибки в .pas самого делфи

У меня XE3

Чтобы delphi не знал что это такое, или чтобы от думал что 403 - это 200 ОК и наконец дал мне занести в переменную результат
WhiteForge вне форума   Ответить с цитированием
Старый 18.10.2012, 14:05   #5
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,654
Репутация: 2097
По умолчанию

ContentStream is a TStream property that represents the stream used when TIdHTTP.ReadResult is used to read the response content for an HTTP Get or Post request. When specified, the size of ContentStream should match the ContentLength for the response. Otherwise, response content is read until the connection is closed. ContentStream may also be used to retrieve "chunked" response content when the transfer encoding for the response indicates that "chunked" retrieval is supported.
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 18.10.2012, 14:50   #6
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
По умолчанию

Все эти Memory и TStream - ложные пути, после запроса вылетает ошибка и в переменную ничего не заносится, как и ответ от сервера, он содержит всё до ошибки от сервера, т.е. тип контента и так далее, после ошибки приходит и ответ, который idhttp уже не считывает. Чтобы получить результат нужен 200 OK, это 100%, после такого ответа начинается обмен, и try except - здесь тоже ничего не решает и вообще к этому близко не относится. Однако в действительности длина контента отображается в программе правильно, что очень странно, а получить его нельзя - вот бред.
Мучаюсь 3 дня, и вот сейчас решил сделать для себя окончательный вывод и смириться с тем, что IdHTTP не принял финальный ответ и ни куда его не записал, т.к. Error н..хй всё перекрыл (прошу прощения устал)

Повторю вопрос:

Можно как-нибудь модифицировать сам компонент, чтобы любой ответ с сервера считался как 200 OK ?

Последний раз редактировалось WhiteForge; 18.10.2012 в 14:56.
WhiteForge вне форума   Ответить с цитированием
Старый 19.10.2012, 07:56   #7
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
По умолчанию

Проблему решил, тему close!
WhiteForge вне форума   Ответить с цитированием
Старый 21.10.2012, 14:31   #8
mqso
Пользователь
 
Регистрация: 19.07.2012
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от WhiteForge Посмотреть сообщение
Проблему решил, тему close!
а можно узнать как решили?
mqso вне форума   Ответить с цитированием
Старый 22.10.2012, 10:48   #9
WhiteForge
Пользователь
 
Регистрация: 26.09.2012
Сообщений: 14
Репутация: 10
Радость

Цитата:
Сообщение от mqso Посмотреть сообщение
а можно узнать как решили?
ApplicationEvents заюзал, всё встало как надо
WhiteForge вне форума   Ответить с цитированием
Старый 24.10.2012, 10:38   #10
mqso
Пользователь
 
Регистрация: 19.07.2012
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от WhiteForge Посмотреть сообщение
ApplicationEvents заюзал, всё встало как надо
а можно код. тоесть не вес код,просто отрывок.
mqso вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить idhttp или как в некоторых случаях не получать ответ от сервера? Кольша Работа с сетью в Delphi 4 24.01.2012 21:50
Ответ от сервера ursa1992 Работа с сетью в Delphi 33 10.01.2012 04:00
поймать ответ от сервера miki131 Работа с сетью в Delphi 1 24.12.2009 21:24
Ответ от сервера. mustang007 Работа с сетью в Delphi 3 23.05.2009 10:33
TClientSocket ответ от сервера JRcoker Работа с сетью в Delphi 10 02.10.2008 01:55


20:39.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru