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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2013, 23:10   #1
Imbalancez
 
Регистрация: 06.07.2013
Сообщений: 4
По умолчанию Отправка запроса Synapse

В общем отправляю запрос, а ответа нету, в чем собственно проблема?



Код:
begin
Result:=false;
HTTP:= THTTPSend.Create;
response:=TStringList.Create();
stream:= TStringStream.Create('');
response.Clear;


HTTP.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';
HTTP.MimeType:='application/x-www-form-urlencoded';
HTTP.Headers.Add('Referer: https://cp.timeweb.ru/login.php');


Stream.WriteString('_host=imap.timeweb.ru&_show_form=login_hosting&_action=login&username='+login+'&password='+pass);


HTTP.HTTPMethod('POST', 'https://cp.timeweb.ru/');


Response.LoadFromStream(HTTP.Document);
Form1.Memo1.Lines.Add(Response.Text);


if Pos('logout',response.Text) <> 0 then
Даже если ответом будет HTTP.Header.Text
Он короткий какойто, в общем по нему анреал валид определить.

Ответ HTTP.Header.Text:
Код:
POST / HTTP/1.0Host: cp.timeweb.ru:443
Keep-Alive: 300
Connection: keep-alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Referer: https://cp.timeweb.ru/login.php
и все.

Последний раз редактировалось Imbalancez; 06.07.2013 в 23:13.
Imbalancez вне форума Ответить с цитированием
Старый 06.07.2013, 23:24   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну вы собственно ничего и не отправляете на сервер.
Запишите свой StringStream в HTTP.Document
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2013, 23:40   #3
Imbalancez
 
Регистрация: 06.07.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ну вы собственно ничего и не отправляете на сервер.
Запишите свой StringStream в HTTP.Document
Код:
HTTP.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';
HTTP.MimeType:='application/x-www-form-urlencoded';
HTTP.Headers.Add('Referer: https://cp.timeweb.ru/login.php');

Stream.WriteString('_host=imap.timeweb.ru&_show_form=login_hosting&_action=login&username='+login+'&password='+pass);
HTTP.Document.LoadFromStream(stream);

HTTP.HTTPMethod('POST', 'https://cp.timeweb.ru/');

Response.LoadFromStream(HTTP.Document);
Form1.Memo1.Lines.Add(Response.Text);
Записал, но при отправке запроса, ответ такой же...
Только теперь выбивает
_host=imap.timeweb.ru&_show_form=lo gin_hosting&_action=login&username= ***&password=***
Imbalancez вне форума Ответить с цитированием
Старый 06.07.2013, 23:43   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

в модуле synutil есть метод WriteStrToStream, используйте его.

Еще можете попробовать THHTPSendEx(ссылка в подписи) с ним проще будет.
Человек_Борща вне форума Ответить с цитированием
Старый 06.07.2013, 23:56   #5
Imbalancez
 
Регистрация: 06.07.2013
Сообщений: 4
По умолчанию

THHTPSendEx - Пример авторизации можете дать?
Imbalancez вне форума Ответить с цитированием
Старый 07.07.2013, 00:22   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

пример:
Код:
var
 sPOST,         //POST запрос
 sHTML:string;  //Ответ HTML
 http:THTTPSendEx;
begin
  http:=THTTPSendEx.Create('I am OPERA!!!111 User-agent','1.1');
  try
     sPOST:='login=LOL&pwd=123';
     if http.Post('http://lol4to.com/',sPOST,sHTML) then
     begin
       //Запрос прошёл на сервер
       
       if http.IsSucsessfull then 
       begin
         //Код ответа 200
       end;
    
       if http.IsRedirect then
       begin
         //Код ответа 301 или 302
         //http.Location - содержит "куда послали"
       end;
     end;
  finally
    FreeAndNil(http);
  end;
end;
Код писал тут. Велика вероятность, что в слове Sucsessfull я допустил ошибку
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2013, 10:49   #7
Imbalancez
 
Регистрация: 06.07.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
пример:
Код:
var
 sPOST,         //POST запрос
 sHTML:string;  //Ответ HTML
 http:THTTPSendEx;
begin
  http:=THTTPSendEx.Create('I am OPERA!!!111 User-agent','1.1');
  try
     sPOST:='login=LOL&pwd=123';
     if http.Post('http://lol4to.com/',sPOST,sHTML) then
     begin
       //Запрос прошёл на сервер
       
       if http.IsSucsessfull then 
       begin
         //Код ответа 200
       end;
    
       if http.IsRedirect then
       begin
         //Код ответа 301 или 302
         //http.Location - содержит "куда послали"
       end;
     end;
  finally
    FreeAndNil(http);
  end;
end;
Код писал тут. Велика вероятность, что в слове Sucsessfull я допустил ошибку
Спасибо, в общем решил мозг не е*ать и написал на идни, работает как часы :D
Imbalancez вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отправка файла synapse Slimshaddy Работа с сетью в Delphi 3 30.07.2013 01:27
Synapse. Отправка писем, используя SMTP. Кольша Работа с сетью в Delphi 12 15.12.2012 20:18
Отправка почты через SMTP с использованием Synapse chandrasecar Работа с сетью в Delphi 5 26.06.2012 13:04
Synapse и отправка Cookies SBodry Работа с сетью в Delphi 2 09.04.2012 12:35
Время GET-запроса (Synapse) trafbite Работа с сетью в Delphi 1 25.03.2012 11:53