Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 11:45   #1
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
Вопрос Странная ошибки в IdHTTP!!!

Все Доброго времени суток! Подскажите пожалуйста что за ошибкая такая:



Выскакивает судя по всему из-за строчки:

Код:
Memo3.Lines.add(Get('www.dom.ria.ua/xml_import_post'));
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 11.09.2010, 19:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы уверены что там HTTP запрос?
похоже HTTP-заголовков ответа нет, потому такая ошибка(судя по тексту я прав)

решение: получать простым сокетом(может idhttp позволяет это), а не через HTTP(правда сам запрос скорее всего верный HTTP-ишный)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2010, 15:48   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Ссылки нужно указывать обязательно с протоколом...
Код:
Memo3.Lines.add(Get('http://www.dom.ria.ua/xml_import_post'));
W0LF вне форума Ответить с цитированием
Старый 12.09.2010, 16:24   #4
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Цитата:
вы уверены что там HTTP запрос?
похоже HTTP-заголовков ответа нет, потому такая ошибка(судя по тексту я прав)

решение: получать простым сокетом(может idhttp позволяет это), а не через HTTP(правда сам запрос скорее всего верный HTTP-ишный)
Вот мой код:

Код:
procedure TAdd.Button1Click(Sender: TObject);
begin

with idhttp1 do
  begin
    Host := 'www.dom.ria.ua';
    AllowCookies := True;
    HandleRedirects:=true;
with Request do
  begin
    Host := 'dom.ria.ua';
    Connection := 'keep-alive';
    CacheControl := 'max-age=0';
    Accept := 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
    UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.9 (KHTML, like Gecko) Chrome/6.0.400.0 Safari/533.9';
    AcceptEncoding := 'gzip,deflate,sdch';
    AcceptLanguage := 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
    AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.3';
  end;
end;

 memo3.Lines.Clear;
 Memo3.Lines.add(idhttp1.Get('www.dom.ria.ua/xml_import_post'));

end;
В результате ошибка та что на картинке в первом посте! Так что же мне делать подскажите пожалуйста?

Цитата:
Ссылки нужно указывать обязательно с протоколом...
Я и так тоже пробовал! И в ответ получал почти туже ошибку что и в первом посте тока в скобках в место - <html> - HTTP/1.1 404 Not Found

Интересно то что страница то есть!!! Но код страницы всего пару строчек а его получить почему то не могу!!!

Код:
<html>
<head>
</head>
<body>
No input file specified.
</body>
</html>
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 12.09.2010, 17:07   #5
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Всё работает правильно. Сервер выдает код ответа 404. И текст. Программа, естественно, считает, что страница не найдена и текст ответа не получает.
Заключите запрос в try-except и в случае возврата 404 будете знать, что сервер выдал "No input file specified"
Voody вне форума Ответить с цитированием
Старый 12.09.2010, 19:37   #6
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Спасибо буду пробовать!
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 12.09.2010, 21:03   #7
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Вернулся за помощью)! Кое что переработал так как говорил Voody:

Код:
procedure TAdd.BitBtn4Click(Sender: TObject);
var
  xml_file : TStringList;
  s : string;
begin

DR_Login.showmodal;

if dr_ln = true then
  begin

CreateXML(edit15.text, edit11.Text, edit7.Text, datamodule2.Arenda.Fields.Fields[0].AsString,
          edit10.text, edit4.text, edit9.text, edit14.text, edit17.text, edit8.text, edit13.text,
          edit12.text, edit21.text, memo1.Text, areview.label4.caption);

xml_file := TStringList.Create;
xml_file.Clear;
xml_file.Add('key=код');
xml_file.Add('login=' + login);
xml_file.Add('password=' + password);
memo2.Clear;
memo2.Lines.LoadFromFile('C:\Lider\dr\' + areview.label4.caption + '.xml');

//showmessage('');
xml_file.Add('xml_file=' + AReview.Memo2.Lines.Text);

with idhttp1 do
  begin
    //port := 80;
    //Connect(500);
    AllowCookies := True;
    HandleRedirects:=true;
  try
    memo3.Lines.Clear;
    Memo3.Lines.add(Get('http://dom.ria.ua/xml_import_post'));
  except
    showmessage('No Inputt File Specifield!!!');
  end;
with Request do
  begin
  try
    Host := 'dom.ria.ua';
    Connection := 'keep-alive';
    CacheControl := 'max-age=0';
    Accept := 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
    UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.9 (KHTML, like Gecko) Chrome/6.0.400.0 Safari/533.9';
    AcceptEncoding := 'gzip,deflate,sdch';
    AcceptLanguage := 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
    AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.3';
  except
    showmessage('Нету подключения к Интернету!!!');
  end;
  end;
  try
   AReview.Memo2.Lines.Text := Post('http://dom.ria.ua/xml_import_post', xml_file);
  except
     on E : Exception do
      ShowMessage(E.ClassName+' поднята ошибка, с сообщением : '+E.Message);
  end;
end;
xml_file.Free;

deletefile('C:\Lider\dr\' + areview.label4.caption + '.xml');

dr := true;

end;

BitBtn1Click(sender);

end;
Но почему в блоке:
Код:
try
   AReview.Memo2.Lines.Text := Post('http://dom.ria.ua/xml_import_post', xml_file);
  except
     on E : Exception do
      ShowMessage(E.ClassName+' поднята ошибка, с сообщением : '+E.Message);
  end;
end;
выполняеться отлов ошибки HTTP/1.1 404 Not Found а не отправка данных на сервер ???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 12.09.2010, 21:49   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то сначало отправка потом отлов, ибо мы сначало посылаем запрос, потом читаем ответ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2010, 22:02   #9
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Цитата:
вообще то сначало отправка потом отлов, ибо мы сначало посылаем запрос, потом читаем ответ.
Ну я понимаю! Сначала посылается запрос, затем получаем ответ! Это понятно! Не понятно почему в итоге я получаю ошибку HTTP Not Found??? Админы того сайта сказали мне вот что:

Цитата:
ответ в xml
форматеследующего вида:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Message>Event: Checking input params</Message>
<Message>Message:User with given params exists</Message>
<Message>Message:Given user is owner of agency with id = 16875</Message>
<Message>now imported 6</Message>
<Status>sucсess</Status>
</root>
<Status> - может быть 'sucсess' или 'failed' в случае отсутствия прав
доступа юзера к такой форме импорта
<Message> - соответсвующие сопроводительніе сообщения.
Пепел Феникса - вы говорили что проблема может скрываться в формате xml??? Объясните пожалуйста???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 12.09.2010, 23:05   #10
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Если вы знакомы с админами, то спросите у них, почему сервер выдает код 404))
Пока сервер будет выдавать этот код, текст ответа вы не получите. Может какие-то другие компоненты это позволяют, но не Indy. Ибо 404 означает, что страница не найдена, т.е. то, что запрашивает клиент, на сервере нет и получать там нечего
Voody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная ошибка Dux SQL, базы данных 5 23.03.2010 12:16
Странная ошибка k1r1ch Общие вопросы Delphi 10 25.06.2009 13:43
Странная задача ARF_name Паскаль, Turbo Pascal, PascalABC.NET 1 29.04.2009 11:24
Странная реакция drknn Помощь студентам 2 02.09.2007 15:51