|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.10.2012, 12:02 | #1 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
Ответ от сервера 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. |
18.10.2012, 12:45 | #2 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
А что дает вот такое?
Код:
|
18.10.2012, 13:03 | #3 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
Ничего, сообщение не появляется
|
18.10.2012, 13:51 | #4 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
Можно как-нибудь обрезать эти ошибки в .pas самого делфи
У меня XE3 Чтобы delphi не знал что это такое, или чтобы от думал что 403 - это 200 ОК и наконец дал мне занести в переменную результат |
18.10.2012, 14:05 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
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.
программа — запись алгоритма на языке понятном транслятору
|
18.10.2012, 14:50 | #6 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
Все эти Memory и TStream - ложные пути, после запроса вылетает ошибка и в переменную ничего не заносится, как и ответ от сервера, он содержит всё до ошибки от сервера, т.е. тип контента и так далее, после ошибки приходит и ответ, который idhttp уже не считывает. Чтобы получить результат нужен 200 OK, это 100%, после такого ответа начинается обмен, и try except - здесь тоже ничего не решает и вообще к этому близко не относится. Однако в действительности длина контента отображается в программе правильно, что очень странно, а получить его нельзя - вот бред.
Мучаюсь 3 дня, и вот сейчас решил сделать для себя окончательный вывод и смириться с тем, что IdHTTP не принял финальный ответ и ни куда его не записал, т.к. Error н..хй всё перекрыл (прошу прощения устал) Повторю вопрос: Можно как-нибудь модифицировать сам компонент, чтобы любой ответ с сервера считался как 200 OK ? Последний раз редактировалось WhiteForge; 18.10.2012 в 14:56. |
19.10.2012, 07:56 | #7 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
Проблему решил, тему close!
|
21.10.2012, 14:31 | #8 |
Пользователь
Регистрация: 19.07.2012
Сообщений: 24
|
|
22.10.2012, 10:48 | #9 |
Пользователь
Регистрация: 26.09.2012
Сообщений: 14
|
|
24.10.2012, 10:38 | #10 |
Пользователь
Регистрация: 19.07.2012
Сообщений: 24
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ускорить idhttp или как в некоторых случаях не получать ответ от сервера? | Кольша | Работа с сетью в Delphi | 4 | 24.01.2012 21:50 |
Ответ от сервера | ursa1992 | Работа с сетью в Delphi | 33 | 10.01.2012 04:00 |
поймать ответ от сервера | miki131 | Работа с сетью в Delphi | 1 | 24.12.2009 20:24 |
Ответ от сервера. | mustang007 | Работа с сетью в Delphi | 3 | 23.05.2009 10:33 |
TClientSocket ответ от сервера | JRcoker | Работа с сетью в Delphi | 10 | 02.10.2008 01:55 |