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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 22:30   #1
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Стрелка get post без компонентов

Всем привет!

Хотелось бы создать приложение без форм и прочих компонентов и размером как можно меньше)

Необходимо отправить на site.com/myscript.php post/get запросом некоторую информацию и собственно получить ответ от сервера в виде html кода странички

Такое возможно сделать?
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 15.05.2010, 22:46   #2
mish@
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 78
По умолчанию

Без компонентов врятли, если возможно то будет большой код. Можно с компонентами и без формы
mish@ вне форума Ответить с цитированием
Старый 15.05.2010, 22:50   #3
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Плохо

Цитата:
Сообщение от mish@ Посмотреть сообщение
Без компонентов врятли, если возможно то будет большой код. Можно с компонентами и без формы
С формой размер будет в 10 раз больше.
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 16.05.2010, 00:56   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Без компонентов врятли
Вот что с людьми делает компонентность Делфи. Создаем сокет, соединяемся и поехали... хоть гет, хоть пост, хоть что-то еще.
p51x вне форума Ответить с цитированием
Старый 16.05.2010, 01:19   #5
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Цитата:
Сообщение от GAGARIN-NEW Посмотреть сообщение
Всем привет!

Хотелось бы создать приложение без форм и прочих компонентов и размером как можно меньше)

Необходимо отправить на site.com/myscript.php post/get запросом некоторую информацию и собственно получить ответ от сервера в виде html кода странички

Такое возможно сделать?
Код:
uses idHttp...
......
var
 http:TidHttp
....
http.get(...);
Lemo вне форума Ответить с цитированием
Старый 16.05.2010, 01:29   #6
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Радость

Цитата:
Сообщение от p51x Посмотреть сообщение
Вот что с людьми делает компонентность Делфи. Создаем сокет, соединяемся и поехали... хоть гет, хоть пост, хоть что-то еще.
А можно пример? Гугл и поиск отказываются мне помогать)
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 16.05.2010, 03:23   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот держи ссылку. Там уже все это дело впихнуто в модули. В конце статьи есть тестовый пример. Разобраться там не тяжело.
Ссылка:
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 16.05.2010, 04:07   #8
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
Сообщение от spamer Посмотреть сообщение
Вот держи ссылку. Там уже все это дело впихнуто в модули. В конце статьи есть тестовый пример. Разобраться там не тяжело.
Ссылка:
Сервер возвращает страницу на которой говорится что "страница не найдена" , даже если использовать пример от автора и get запрос.
При-том если я отправляю посредством html и форм(на сайте) то все отлично работает.
302 ошибка сказал сниффер(
---

Последний раз редактировалось GAGARIN-NEW; 16.05.2010 в 04:11.
GAGARIN-NEW вне форума Ответить с цитированием
Старый 16.05.2010, 15:22   #9
MMM_Corp
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 17
По умолчанию

Synapse прекрасно справится с этой задачкой, рекомендую.
MMM_Corp вне форума Ответить с цитированием
Старый 16.05.2010, 16:29   #10
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Цитата:
Сообщение от MMM_Corp Посмотреть сообщение
Synapse прекрасно справится с этой задачкой, рекомендую.
Используя synapse
Код:
program POST;

uses
  //Windows,
  httpsend,
  Classes;

var
  st:tmemorystream;
  resp:TStringList;
begin
st := TMemoryStream.Create;
  try
    HTTPpostURL('http://site.ru/script.php', 'ver' + '=' + '0.44'+'&n2=post_ex', st);
    st.Seek(0,soFromBeginning);
    resp := TStringList.Create;
    resp.LoadFromStream(st);
    if Pos('D33one',resp.Text)>=0 then resp.SaveToFile('C:\resp.txt');

  finally
    st.Free;
  end;
end.
Размер файла 132кб

А вот пример с winsock
Код:
function POST(URL,PACKET:string):string;
var
 req{,data} : string;
 buf      : array[0..1500] of char;
 wData    : WSADATA;
 addr     : sockaddr_in;
 sock     : integer;
 error    : integer;
 phe      : PHostEnt;
begin
 Result := '';
 WSAStartup($0101, wData);
 phe := gethostbyname(PChar(string(host)));
 if phe = nil then begin
    WSACleanup;
    exit;
 end;
 sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if sock = INVALID_SOCKET then begin
    WSACleanup;
    exit;
 end;
 addr.sin_family := AF_INET;
 addr.sin_port   := htons(80);
 addr.sin_addr   := PInAddr(phe.h_addr_list^)^;
 error := connect(sock, addr, sizeof(addr));
 if error = SOCKET_ERROR then begin
    closesocket(sock);
    WSACleanup;
    exit;
 end;
 req := PACKET;
 if Send(Sock,pointer(req)^,length(req),0)=SOCKET_ERROR then exit;
 fillchar(buf,sizeof(buf),0);
 recv(Sock,buf,10000,0);//sizeof(buf
 closesocket(Sock);
 result:=buf;
end;

function ePOST(URL,_POST:string):string;
var req:string;
nUrl:string;
i:Integer;
begin
{ for i:= Length(URL) to 1 do
  if (URL[i] = '/') then
  begin
  nUrl := Copy(URL,i,Length(URL));
  ShowMessage(nurl);
  Break;
  end;
}
 nUrl := '/script.php';
 req:='POST '+nURL+' HTTP/1.1'#13#10+
      'User-Agent: Opera/9.24 (Windows NT 5.1; U; ru) Presto/2.1.1'#13#10+
      'Host: '+host+#13#10+
      'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'#13#10+
      'Accept-Encoding: gzip,deflate, *;q=0'#13#10+
      'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'#13#10+
      'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'#13#10+
      'Connection: Keep-Alive, TE'#13#10+
      'TE: deflate, gzip, chunked, identity, trailers'#13#10+
      'Referer: http://site.ru/post.html'#13#10+
      'Content-Length: '+inttostr(length(_POST))+#13#10+
      'Content-Type: application/x-www-form-urlencoded'#13#10#13#10+_POST;
  result:=POST(URL,req);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  host := 'site.ru';
memo2.Text := ePOST(Edit1.Text,Memo1.Text);
end;
а req пытался подстроить под оперу. Опере то сервер нормально отвечал =)

Но сервер принимает post запрос с параметрами но почему-то не выдает ответ =( сниффер сказал что пришло 0 байт(
---

Последний раз редактировалось GAGARIN-NEW; 16.05.2010 в 16:35.
GAGARIN-NEW вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание компонентов без формы Delphi009 Общие вопросы Delphi 5 07.01.2010 16:58
Как без компонентов заарховировать папку? dolphin705 Общие вопросы Delphi 3 16.08.2009 15:26
Как вывести текст в окно без компонентов делфи. Только на win api deadh5n1 Помощь студентам 1 08.12.2007 01:41
Как воспроизв. mp3 в пректе без каких либо компонентов Domovoy Мультимедиа в Delphi 14 30.11.2007 20:01